我正在使用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评估任意数量的验证示例?
128个示例评估指标来自我用来为示例创建输入函数的tf.estimator.inputs.numpy_input_fn函数。如果未为batch_size提供另一个参数,则此函数的API在此处指定128作为默认参数。为batch_size参数提供所需数量的要评估的示例将纠正上述问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句