我正在使用 Tensorflow 的 tf.estimator.DNNClassifier.evaluate 函数来评估我的网络。我正在使用位于 here 的 Tensorflow 鸢尾花数据.经过进一步调查和计算,我确定无论评估集大小如何,都会评估 128 个示例。
例如,iris_training.csv 只有 120 个示例,评估了 128 个(大概有 8 个被评估了两次)。我也有一些包含 1k 个示例的验证集,但在这种情况下也只评估了 128 个示例。
我通过将总损失除以平均损失来得出评估的示例数量。我希望能够任意改变它,尤其是在使用更大的验证集时。如何实现?
我尝试使用评估函数的 steps 参数 = 1、2、10、120 等...结果相同,评估了 128 个示例,而 steps = None 导致函数永远不会返回。
即使在搜索了位于 here 的 API 之后,我也无法理解这个 128 指标的来源.我还研究了使用位于 here 的类似 tf.contrib.learn.DNNClassifier 的估计器,但 API 声明该函数已弃用并将被删除,因此我认为这不是最佳选择。
我假设在找到另一个 SO 页面后,steps 参数不是我要找的 here .
那么,如何使用 Tensorflow 来评估任意数量的验证示例?
请您参考如下方法:
128 个示例评估指标来 self 用来为我的示例创建输入函数的 tf.estimator.inputs.numpy_input_fn 函数。此功能的 API 位于 here如果未提供 batch_size 的另一个参数,则将 128 指定为默认参数。为 batch_size 参数提供所需数量的待评估示例将纠正上述问题。
