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