在每个时期后重置指标的局部变量

时间:2019-01-02 14:00:05

标签: python tensorflow metrics

我使用内置方法tf.metrics.precision评估我的模型。我一直在浏览其definition,但从未重置过本地变量。

不是要在每个时期之后将其重置以从最后一个时期中删除计数吗?这是自动完成的,而我只是在源代码中忽略了它,还是应该这样做?如果后者为true,如何重置局部变量?我在文档中什么都没读。

2 个答案:

答案 0 :(得分:1)

使用metric_variable函数创建用于跟踪指标的变量,然后使用键tf.GraphKeys.METRIC_VARIABLES将其添加到集合中。定义所有指标后,您可以执行以下重置操作:

reset_metrics_op = tf.variables_initializer(tf.get_collection(tf.GraphKeys.METRIC_VARIABLES))

在每个时期完成后运行它。

答案 1 :(得分:0)

是的。必须注意在批量处理数据时如何重置变量。在计算总体指标(即精度,准确性或auc)和批处理指标时安排操作是不同的。在计算每一批新数据的精度值之前,需要将运行变量重置为零。

使用tf.metrics.precision,将创建两个运行变量并将其放置到计算图中:true_positivesfalse_positives。因此,您可以使用scope的{​​{1}}参数选择要重置的变量。

tf.get_collection()