【发布时间】:2019-05-01 14:22:50
【问题描述】:
我目前正在更深入地研究 tensorflow,我对正确使用 tf.nn.Conv2d(input, 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 的一个包(即一包三帧) .现在这是 tensorflow 崩溃的地方。它期望(100,160,128,3),但接收(1,160,128,3)。
现在我很困惑。我显然不想将批量大小设置为 1 并且总是只提供一个包进行训练。但是我该如何继续呢?这将如何使用tf.nn.conv2d 实现?
如果有人能在这里引导我走向正确的方向,非常感谢
提前感谢您的帮助! 凯文
【问题讨论】:
标签: python tensorflow neural-network deep-learning reinforcement-learning