tf.contrib.metrics.streaming_auc - 什么值代表我的AUC

时间:2018-04-16 00:02:10

标签: python tensorflow auc

我正在尝试使用tf.contrib.metrics.streaming_auc找到AUC值。这个问题是在每个时代之后,我的AUC值如下:

(0.0, 0.37472612)
(0.0, 0.57414174)
(0.0, 0.5894814)
...

如果我正确理解文档,第一个值(即0.0)代表auc,第二个值代表update_op

在这种情况下,哪个值实际代表每个纪元后的AUC值?

感谢。

1 个答案:

答案 0 :(得分:0)

指标包具有独特的运作方式。在这种情况下,第一个值是AUC,您不需要查看的第二个值,您只需要运行OP来更新多个批次的值(多次调用sess.run。< / p>

这种方法的原因在于,如果你只计算AUC,那么在一次调用sess.run时可以正常工作,但如果你必须计算一个太大而无法处理的数据集的AUC调用sess.run你必须保存一些聚合变量,以计算所有批次结束时的最终AUC(这是指标包的作用)。

解决方案是update_op。当您为多个批次运行每个批次的update_op时,它会累积计算AUC所需的内容。您可以随时询问AUC(您的第一个属性)的计算值,并根据update_op管理的当前变量进行计算(不更改值)。如果你得到全部0,我猜你还没有运行update_op。我不确定我对update_op本身(你所展示的第二个值)的期望是什么,它应该是我期望的一组OP,所以我不知道如何准确地解释。