Python 如何为tensorflow批处理输入?

Python 如何为tensorflow批处理输入?,python,neural-network,tensorflow,Python,Neural Network,Tensorflow,我正在尝试将我正在研究的神经网络的输入批量处理在一起,这样我就可以像tensorflow MNIST教程中那样将它们输入tensorflow。然而,我找不到做这件事的方法,教程中也没有介绍 input = tf.placeholder(tf.float32, [10, 10]) ... accuracy = tf.reduce_mean(tf.cast(correct, tf.float32)) inputs = #A list containing 50 of the inputs sess.

我正在尝试将我正在研究的神经网络的输入批量处理在一起,这样我就可以像tensorflow MNIST教程中那样将它们输入tensorflow。然而,我找不到做这件事的方法,教程中也没有介绍

input = tf.placeholder(tf.float32, [10, 10])
...
accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))
inputs = #A list containing 50 of the inputs
sess.run(accuracy, feed_dict={input: inputs})
这将引发以下错误:

ValueError: Cannot feed value of shape (50, 10, 10) for Tensor'Placeholder:0', which has shape '(10, 10)'
我理解为什么会出现上述错误,我只是不知道如何让tensorflow将我的输入作为一批输入来处理,而不是认为我试图将其作为一个形状来输入


非常感谢您的帮助

在调用tf.reduce\u mean()时,您必须以不同的方式设置输入,以形成[batch\u size,10,10],并使用参数
reduce\u index
。另外,
tf.contrib.learn.read\u batch\u examples()
将负责使用批处理队列对示例进行批处理,请参阅文档

您需要修改占位符的签名。让我们分析一下错误消息:

ValueError: Cannot feed value of shape (50, 10, 10) for 
Tensor'Placeholder:0', which has shape '(10, 10)'
您的
输入
变量是具有形状
(50,10,10)
的变量,这意味着
50
形状
(10,10)
元素,而张量
占位符:0
是您的
输入
变量。如果打印(input.name),您将获得值
占位符:0
。 无法输入值表示它无法将
输入分配给
输入

第一个快速解决方案是将占位符
input
的形状固定到

input = tf.placeholder(tf.float32, [50, 10, 10])
但每次要修改批大小时,都需要更新输入中的批大小。 指定批次大小的更好方法是使用
None
为批次大小设置未定义的形状维度:

input = tf.placeholder(tf.float32, [None, 10, 10])

这将适用于任何批量大小,从
1
到您的体系结构的硬件限制。

非常感谢[None,10,10]这正是我想要的。这实际上是在教程中,它只是没有点击我的脑袋,这就是它的目的。非常感谢!!