2

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

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

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

我已经尝试使用评估函数的 steps 参数 = 1、2、10、120 等......这会导致相同的 128 个示例被评估,而 steps = None 会导致函数永远不会返回。

我无法理解这个 128 指标的来源,即使在搜索了位于此处的 API 之后。我还研究了使用位于此处的类似 tf.contrib.learn.DNNClassifier 的估计器,但 API 声明该函数已弃用并将被删除,所以我认为这不是最佳选择。

我假设在此处找到另一个 SO 页面后,steps 参数不是我要寻找的。

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

4

1 回答 1

2

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

于 2017-12-22T13:12:29.617 回答