我目前正在深入研究tensorflow,而对tf.nn.Conv2d(input, filter, strides, padding)
的正确使用感到有些困惑。尽管乍看之下看起来很简单,但我无法听到以下问题的答案:
我很清楚使用filter, strides, padding
。但是,尚不清楚input
的正确应用。
我来自强化学习Atari(Pong)问题,在该问题中,我想使用网络进行批量训练,并且(一定概率)还希望在每个步骤中进行预测。这就是说,为了进行训练,我要向网络馈送一整批数据,比如说100,每个单元由3个尺寸为160、128的帧组成。使用tensorflow的NHWC格式,我对input
的输入将是一个{{ 1}}的形状为tf.placeholder
。因此,为了进行培训,我要喂养100 160x128x3包。
但是,在某些情况下,当预测网络的输出(通过乒乓球桨向上或向下)时,我只向160x128x3的网络一包(即三帧一包)供电。现在这是张量流崩溃的地方。它期望(100,160,128,3)
但收到(100,160,128,3)
。
现在我很困惑。我显然不想将批次大小设置为1,并且始终只提供一个软件包进行培训。但是我该怎么办? (1,160,128,3)
如何实现?
如果有人不能将我引导到正确的方向,我们将非常感谢
预先感谢您的帮助! 凯文
答案 0 :(得分:0)
您需要按以下方式设置占位符 tf.placeholder(shape =(None,160,128,3)....),在第一维中没有任何内容,您的占位符将灵活地适应您输入1或100的任何值。