TF:tf.metrics

tf.metrics.accuracy

 返回两个值,第一个值是本次运行前的准确度,第二个值是本次运行后的准确度。

#encoding=utf-8
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: [1, 1, 1, 1, 0]})
#共15、共正确9
print(v)    #[0.4, 0.6]
 
v = sess.run([acc, acc_op], feed_dict={x: [1, 1, 1, 1, 0], y: [1, 0, 0, 0, 1]})
#共20、共正确10
print(v)    #[0.6, 0.5]

tf.metrics.mean_iou[参考1][参考2]

mean_iou, update_op = tf.metrics.mean_iou()。其中mean_iou是平均交并比,update_op是不断更新的混淆矩阵。

类别iIOU_{i} = \frac{TP}{TP + FP +FN}meaniou = \frac{1}{n} \sum_{i=1}^{n} IOU_{i}

  1. TP:true_positive,正样本被预测为正样本的个数。
  2. FP:false_positive,负样本被预测为正样本的个数。
  3. TN:true_negative,正样本被预测为负样本的个数。
  4. FN:false_negative,负样本被预测为负样本的个数。

比如label=[[0, 1, 2, 3], [0, 1, 1, 1]],predic=[[0, 1, 2, 3], [0, 1, 0, 1]]时,对于类别0:

  1. TP=2:label中的两个0被预测为0(绿色)。
  2. FP=1:label中有一个非0被预测为0(蓝色)。
  3. FN=0:label中没有出现0被预测为非0的情况。

因此IOU_{0} = \frac{2}{2+1+0} = \frac{2}{3},同理IOU_{1} = \frac{3}{4}IOU_{2} = 1IOU_{3} = 1。所以meaniou = \frac{41}{48} = 0.85416667

import tensorflow as tf
import numpy as np

tf.reset_default_graph()

p = np.array(([0,1,2,3],[0,1,0,1]))
l = np.array(([0,1,2,3],[0,1,1,1]))

label = tf.reshape(l,[2,4])
predicts = tf.reshape(p, [2, 4])

iou_op = tf.metrics.mean_iou(label,predicts,4)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer()) 
    sess.run(tf.local_variables_initializer())

    mean_iou, conf_mat = sess.run(iou_op)
    print
    print(conf_mat)
    mean_iou, conf_mat = sess.run(iou_op)
    print
    print(mean_iou)
    print
    print(conf_mat)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值