从tf.metrics.accuracy返回的第一个值代表什么

时间:2018-11-18 15:43:34

标签: python tensorflow

我想了解从let numbers = [1,3,5,10,15] newNumbers = numbers ++ [27] listofnumbers = newNumbers ++ [39] 返回的值

考虑以下最小示例:

tf.metrics.accuracy

输出:

predictions = tf.constant([[1,0,1], [1,0,1]], dtype=tf.int32)
labels = tf.constant([[0,0,1], [1,0,1]], dtype=tf.int32)

acc = tf.metrics.accuracy(labels, predictions)

with tf.Session() as sess:
  sess.run(tf.local_variables_initializer())
  res = sess.run(acc)
print(res) 

第二个值是我所期望的(我们有5/6个值,其中(0.0, 0.8333333) 是5/6〜= 0.83),但是第一个零值对我来说是个谜?

TensorFlow docs这样说:

  

返回:

     
      
  • accuracy:表示张量的准确性,即   总数除以计数。
  •   
  • update_op:增加   适当地总计和计数变量,并且其值匹配   准确性。
  •   

但是这表明两个返回操作的值都应该为0.83,不是吗? (但是那之后返回2个操作的意义何在?!)

感觉我缺少一些基本知识!

1 个答案:

答案 0 :(得分:2)

根据张量流代码和描述,第一个值是不使用最新一批数据(在流式传输数据的情况下)计算出的精度,第二个值是使用所有数据计算出的最终精度。张量流将其用于数据的流处理。