【Tensorflow 大马哈鱼】 tf.metrics.accuracy

 tf.metrics.accuracy返回两个值,accuracy为到上一个batch为止的准确度,update_op为更新本批次后的准确度。

accuracy, update_op = tf.metrics.accuracy(labels=x, predictions=y)

定义于:tensorflow/python/ops/metrics_impl.py。

计算predictions匹配labels的情况。

该accuracy函数创建两个局部变量,total和count用于计算predictions匹配labels的情况。这个频率被最终返回为accuracy:total/count。

因为有局部变量,所以要初始化局部变量,sess.run(tf.local_variables_initializer())

为了估计一连串的数据,该函数创建一个 update_op操作更新这些变量并返回accuracy。在内部,一个is_correct操作计算一个Tensor,当predictions和labels匹配时其中相应的元素为1.0,否则为0.0。然后update_op更新total和count的值。

如果weights是None,则权重默认为1.使用权重0来作为mask值。

参数:

labels:ground truth值,Tensor,其形状匹配 predictions。

predictions:预测值,任何形状的Tensor。

weights:可选,Tensor,其秩为0或与labels的秩相同,并且必须可广播到labels(即,所有维度必须1或者与相应的labels维度相同)。

metrics_collections:accuracy应添加到的可选集合列表。

updates_collections:update_op应添加到的可选集合列表。

name:可选的,variable_scope名称。

返回:

accuracy:A Tensor,表示准确性,值total除以count。

update_op:适当增加total和count变量并且使其值匹配accuracy的操作。
 

看代码:

import numpy as np
import tensorflow as tf

x = tf.placeholder(tf.int32, [5])
y = tf.placeholder(tf.int32, [5])
acc, acc_op = tf.metrics.accuracy(labels=x, predictions=y)

sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())

v = sess.run([acc, acc_op], feed_dict={x: [1, 0, 0, 0, 0],
                                       y: [1, 0, 0, 0, 1]})
#总的5个(正确4)
print(v)   #[0.0, 0.8]


v = sess.run([acc, acc_op], feed_dict={x: [1, 1, 1, 1, 0],
                                       y: [0, 0, 0, 0, 1]})
#总的10个(正确4)                                   
print(v)    #[0.8, 0.4]

v = sess.run([acc, acc_op], feed_dict={x: [1, 1, 1, 1, 0],
                                       y: [0, 0, 0, 0, 1]})
#总的15个(正确4)           
print(v)    #[0.4, 0.26666668]

v = sess.run([acc, acc_op], feed_dict={x: [1, 1, 1, 1, 0],
                                       y: [0, 0, 0, 0, 1]})
#总的20个(正确4)           
print(v)    #[0.26666668, 0.2]

 

  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值