在我的例子中,有状态在tensorflow度量中意味着什么?

在我的例子中,有状态在tensorflow度量中意味着什么?,tensorflow,Tensorflow,我真的不理解这里有状态度量的解释: 现在,如果我将评估数据分批进行,并且对于每个批次,我使用tf.metrics.precision作为精度,这是否意味着之前的变量(计数器误报等)将用于下一批次的计算?这将非常糟糕,因为我希望每个批次都有一个单独的评估(这就是为什么我要进行拆分!) 如果是这种情况,我如何重置每个批次的变量 我需要每个批次中的单个值作为之后的平均值。为什么tf.metrics.Precision等(召回等)存储真/假阳性是因为我们不希望按批次进行估计(与准确度或损失等不同)。ke

我真的不理解这里有状态度量的解释:

现在,如果我将评估数据分批进行,并且对于每个批次,我使用tf.metrics.precision作为精度,这是否意味着之前的变量(计数器误报等)将用于下一批次的计算?这将非常糟糕,因为我希望每个批次都有一个单独的评估(这就是为什么我要进行拆分!)

如果是这种情况,我如何重置每个批次的变量


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

为什么
tf.metrics.Precision
等(召回等)存储真/假阳性是因为我们不希望按批次进行估计(与准确度或损失等不同)。
keras
(注意,不是
tf.keras
)中精度的最初实现与您描述的完全一样(对每个批次进行单独评估,然后在之后进行汇总),但后来在版本2.0.0中被删除,因为这种计算全局度量的方法“误导大于帮助”()

但是您仍然可以做您想做的事情,您可以将
tf.metrics.Metric
子类化,并在
update\u state
方法中实现精度逻辑。Tensorflow上的Metric API文档有一个自定义度量的示例

我希望这是有帮助的