[英]How to use Tensorflow tf.nn.Conv2d simultaneously for training and prediction?
我目前正在深入研究tensorflow,并且对tf.nn.Conv2d(input, filter, strides, padding)
的正确使用感到有点困惑。 尽管乍看之下看起来很简单,但我无法理解以下问题:
对我来说filter, strides, padding
使用filter, strides, padding
很清楚。 但是,尚不清楚input
的正确应用。
我来自强化学习Atari(Pong)问题,在该问题中,我想使用网络进行批量训练,并且(一定概率)也要在每个步骤中进行预测。 这就是说,为了进行训练,我向网络馈送了整批数据,比如说100,每个单元由3个尺寸为160、128的帧组成。使用tensorflow的NHWC格式,我输入的input
将是形状的tf.placeholder
(100,160,128,3)
。 因此,对于培训,我要喂养100 160x128x3包。
然而,从我的网络预测输出时(上升或下降与乒乓球桨),在一定的情况下,我只喂160x128x3的网络的一个包 (即三个框架的一个包)。 现在这是张量流崩溃的地方。 它期望(100,160,128,3)
但接收(1,160,128,3)
。
现在我很困惑。 我显然不想将批次大小设置为1,并且始终只提供一个软件包进行培训。 但是我该怎么办? 如何使用tf.nn.conv2d
来实现?
如果有人不能引导我朝正确的方向前进,我将不胜感激
预先感谢您的帮助! 凯文
您需要按照以下tf.placeholder(shape =(None,160,128,3)....)的方式设置占位符,在第一个维度中设置None,您的占位符将灵活地适应您输入1或100的任何值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.