如何在完整验证示例上评估 Tensorflow 模型

How to evaluate Tensorflow model on a full validation example

我正在使用 Tensorflow 的 tf.estimator.DNNClassifier.evaluate 函数来评估我的网络。我正在使用位于 here 的 Tensorflow 鸢尾花数据。经过进一步调查和计算,我确定无论评估集大小如何,都会评估 128 个示例。

例如,iris_training.csv 只有 120 个示例,评估了 128 个(大概有 8 个被评估了两次)。我也有一些包含 1k 个示例的验证集,但在这种情况下也只评估了 128 个示例。

我通过将总损失除以平均损失来得出评估的示例数量。我希望能够任意改变它,尤其是在使用更大的验证集时。如何实现?

我尝试使用评估函数的 steps 参数 = 1、2、10、120 等...结果相同,评估了 128 个示例,steps = None 结果为函数永远不会返回。

我无法理解这个 128 指标的来源,即使在搜索了 here. I also looked into using the similar tf.contrib.learn.DNNClassifier's estimator located here 的 API 之后也是如此,但是 API 声明该函数已弃用并将被删除,所以我认为这不是最好的选择。

我假设在找到另一个 SO 页面后,steps 参数不是我要找的东西

那么,如何使用 Tensorflow 评估任意数量的验证示例?

128 个示例评估指标来自 tf.estimator.inputs.numpy_input_fn 函数,我使用该函数为我的示例创建输入函数。如果未提供 batch_size 的另一个参数,则位于 here 的此函数的 API 指定 128 为默认参数。为 batch_size 参数提供所需数量的待评估示例将纠正上述问题。