python - 如何同时使用Tensorflow tf.nn.Conv2d进行训练和预测?

标签 python tensorflow neural-network deep-learning reinforcement-learning

我目前正在深入研究 tensorflow ,我对 tf.nn.Conv2d(input, filter, strides, padding) 的正确使用感到有点困惑。虽然乍一看很简单,但我无法听到以下问题:

过滤器、步幅、填充的使用对我来说很清楚。然而,尚不清楚的是输入的正确应用。

我来自一个强化学习 Atari (Pong) 问题,其中我想使用网络进行批量训练并(以一定的概率)在每个步骤中进行预测。这意味着,为了训练,我将向网络提供一整批 100 个单元,每个单元由 3 个大小分别为 160、128 的帧组成。使用 tensorflow 的 NHWC 格式,我对 input 的输入将是形状为 (100,160,128,3)tf.placeholder。因此,为了训练,我喂了 100 个 160x128x3 的包。

但是,在某种情况下预测网络的输出(随着乒乓 Racket 上升或下降)时,我仅向网络提供 160x128x3 的一包(即一包三帧) 。现在这就是 tensorflow 崩溃的地方。它期望 (100,160,128,3) 但收到 (1,160,128,3)

现在我很困惑。我显然不想将批量大小设置为 1 并且始终只提供一个包进行训练。但我该如何继续呢?如何使用 tf.nn.conv2d 来实现这一点?

如果有人能引导我走向正确的方向,我将非常感激

预先感谢您的帮助! 凯文

最佳答案

您需要如下设置占位符 tf.placeholder(shape=(None,160,128,3) ....) ,在第一维中没有 None 时,您的占位符将灵活地适应您提供的任何值(1 或 100)。

关于python - 如何同时使用Tensorflow tf.nn.Conv2d进行训练和预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53540424/

相关文章:

Python Pandas : Is Order Preserved When Using groupby() and agg()?

python - for/in循环帮助,帮助理解

Tensorflow:每行索引

python - Tensorflow 队列 - 在训练数据和验证数据之间切换

python - 为什么 tensorflow random_normal 函数给出具有固定种子值的不同输出

python - scikit-neuralnetwork 中神经网络的反向传播和结构

python - 在我的 Flask 应用程序中使用 "BOTO"出现 Amazon S3 文件上传问题 -Python

python - 如何在 python xml.etree.ElementTree 中删除迭代器内的节点

python - tf.nn.in_top_k(logits,y,1) 超出范围错误但实际上相等

python - 使用 Keras Function API 进行多输入