我想使用tf.metrics.accuracy来跟踪我的预测的准确性,但是我不知道如何使用函数返回的update_op (acc_update_op ):
accuracy, acc_update_op = tf.metrics.accuracy(labels, predictions)我认为将它添加到tf.GraphKeys.UPDATE_OPS中是有意义的,但我不知道如何做到这一点。
发布于 2017-10-17 10:04:55
tf.metrics.accuracy是众多流度量TensorFlow操作之一(另一个是tf.metrics.recall)。在创建时,将创建两个变量(count和total),以便为一个最终结果积累所有传入结果。第一个返回的值是计算count / total的张量。返回的第二个op是一个有状态函数,它更新这些变量。在对多批数据进行分类器性能评估时,流度量函数非常有用。一个快速的使用示例:
# building phase
with tf.name_scope("streaming"):
accuracy, acc_update_op = tf.metrics.accuracy(labels, predictions)
test_fetches = {
'accuracy': accuracy,
'acc_op': acc_update_op
}
# when testing the classifier
with tf.name_scope("streaming"):
# clear counters for a fresh evaluation
sess.run(tf.local_variables_initializer())
for _i in range(n_batches_in_test):
fd = get_test_batch()
outputs = sess.run(test_fetches, feed_dict=fd)
print("Accuracy:", outputs['accuracy'])我认为将它添加到
tf.GraphKeys.UPDATE_OPS中是有意义的,但我不知道如何做到这一点。
除非您只将UPDATE_OPS集合用于测试目的,否则这不是一个好主意。通常,集合对于培训阶段已经有某些控制操作(例如移动批处理规范化参数),这些操作不打算与验证阶段一起运行。最好是将它们保存在一个新集合中,或者手动将这些操作添加到提取字典中。
https://stackoverflow.com/questions/46787174
复制相似问题