在我的情况下,有状态在张量流指标中意味着什么?

时间:2019-06-11 20:29:45

标签: tensorflow

我在这里不太了解有状态指标的解释:Keras metrics with TF backend vs tensorflow metrics

现在,如果我将我的评估数据分成几批,并且对于每一批我都使用tf.metrics.precision来表示精度,这是否意味着先前的变量(计数器假阳性等)将用于下一个计算中批量?这真的很糟糕,因为我希望对每个批次进行一次评估(这就是为什么要拆分!)

在这种情况下,如何为每个批次重置变量。

我需要每个批次中的单个值作为平均值。

1 个答案:

答案 0 :(得分:0)

tf.metrics.Precision之类的东西(召回等)存储正确/错误肯定的原因是因为我们不想分批估计它们(与准确性或损失等不同)。 keras中Precision的原始实现(注意,不是tf.keras)完全按照您的描述(对每个批次进行一次评估,然后进行汇总),但后来在2.0.0版中删除,因为这种方式计算全局指标的误导多于帮助(https://github.com/keras-team/keras/issues/5794)。

但是您仍然可以做您想做的事情,您可以继承tf.metrics.Metric的类,并在update_state方法中实现Precision的逻辑。 Tensorflow上的Metric API文档提供了一个自定义Metrics示例。 https://www.tensorflow.org/api_docs/python/tf/keras/metrics/Metric

我希望这会有所帮助!