有两个问题在这里引起问题:
第一个问题是该
Session.run()呼叫仅接受少量类型作为的键
feed_dict。特别是,
不 支持将张量列表用作键,因此您必须将每个张量作为单独的键放置。*一种方便的方法是使用字典理解:
inputs = [tf.placeholder(...), ...]data = [np.array(...), ...]sess.run(y, feed_dict={i: d for i, d in zip(inputs, data)})
第二个问题是
10 * [tf.placeholder(...)]Python中的语法创建了一个包含十个元素的列表,其中每个元素都是
相同的张量对象 (即,具有相同的
name属性,相同的
id属性,并且如果使用来比较列表中的两个元素,它们是引用相同的
inputs[i] isinputs[j]) 。这解释了为什么当您尝试使用列表元素作为键来创建字典时,最终得到一个包含单个元素的字典-因为所有列表元素都是相同的。
若要按预期创建10个不同的占位符张量,应改为执行以下 *** 作:
inputs = [tf.placeholder(tf.float32, shape=(batch_size, input_size)) for _ in xrange(10)]
如果打印此列表的元素,您将看到每个元素都是具有不同名称的张量。
编辑: 您现在可以将 元组* 作为a的键传递
feed_dict,因为它们可以用作字典键。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)