Python 如何为tensorflow批处理输入?
我正在尝试将我正在研究的神经网络的输入批量处理在一起,这样我就可以像tensorflow MNIST教程中那样将它们输入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.
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]这正是我想要的。这实际上是在教程中,它只是没有点击我的脑袋,这就是它的目的。非常感谢!!