python - 在没有 TensorFlow 占位符的情况下工作

标签 python tensorflow

直到最近,我在 TF 中的所有代码都使用 tf.placeholder 来表示输入。这非常方便,因为它允许我向我的网络提供一批任意长度的数据,允许在不同的地方使用相同的代码(训练、测试、预测……)

在发现 feed_dict 太慢之后,我想改变并开始使用管道,它基本上使用 tf.Variable 而不是占位符:每个变量都是一个固定长度张量,表示用作网络输入的批处理。

我的问题是,虽然占位符是“未绑定(bind)的”并且您必须向其提供数据,但管道绑定(bind)到输入数据。因此,例如,一旦我将我的管道设置为使用大小为 10 的批量训练数据,我就不能使用来自测试集的数据,例如 12 个示例。

或者我可以吗?

没有占位符的正确工作方式是什么?

最佳答案

cifar10 示例不使用占位符。它使用 tf.FixedLengthRecordReader 和 tf.train.shuffle_batch。生成的输入图像批处理直接传递给 CNN,没有占位符。

请引用tensorflow官方教程及其python代码:

https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_train.py

此外,在测试时,您可以将测试数据的管道与训练数据中不同批处理的数据链接起来。

请引用评估代码: https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_eval.py

关于python - 在没有 TensorFlow 占位符的情况下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43229807/

相关文章:

python - 如何在 Odoo 的 Python Webdriver 中的预制 Selenium 脚本上放置多个用户负载(例如(100、200 个用户))?

Tensorflow:用于 SVM 估计器的具有稀疏数据的输入管道

python - Keras:获取 fit_generator (verbose=1) 显示的不同值和历史对象中的指标

tensorflow - 在 Keras Tensorflow 中加入两个同名模型

python - 使用生成器从成批的 .npy 文件训练 Keras 模型?

shared-libraries - 如何在 Tensorflow 上使用 Bazel 创建共享库

python - numpy:填充数组的子集

python - 如何将 slider 合并到图中来操纵变量?

python - 使用 Python Twisted 时没有看到 'Unhandled error in Deferred' 的堆栈跟踪

Python 正则表达式 字符之间的匹配