我使用内置方法tf.metrics.precision评估我的模型。我一直在浏览其definition,但从未重置过本地变量。
不是要在每个时期之后将其重置以从最后一个时期中删除计数吗?这是自动完成的,而我只是在源代码中忽略了它,还是应该这样做?如果后者为true,如何重置局部变量?我在文档中什么都没读。
答案 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_positives
和false_positives
。因此,您可以使用scope
的{{1}}参数选择要重置的变量。
tf.get_collection()