Top5误差率

深度学习模型训练除却常见的PRF指标,在多分类的图像识别方面,还有两个误差率,也是公认的图片分类评价标准,即top1 err和top5 err。
比如AlexNet训练分类图片在top1和top5上的误差率分别降低到了39.7%和 18.9%。VGG在top5上的错误率为7.5%。

top1 err-----模型返回预测矩阵里概率最大对应的标签和正确标签不一致样本数/总样本数。其实这个就是 1-Accuracy

top5 err-----概率向量最大的前五中没有出现正确标签的样本数/总样本数
以上两个指标都是越小代表模型效果越好。

在计算top5 err时需要进行正确标签(对应的索引值)是否在返回的预测矩阵前五大概率(对应的索引值)中判断,用到以下tensorflow函数。

correct=tf.nn.in_top_k(logits,tf.argmax(labels, 1), 5)  #logits是模型返回

上面是计算概率向量最大的前五中出现正确标签的样本数,最终记得转换过来:
*top5 err = (1-total_correct/num_sample)100

函数解释

tf.nn.in_top_k(predictions, targets, k, name=None)

这个函数是判断targets目标值是否在预测值predictions的前k个位置中,返回数据类型为bool类型,len与predictions同。例

predictions=[[0.52509776, 0.5892755 , 0.74725628, 0.76582739],
       [0.50402326, 0.61583285, 0.29059194, 0.02758617],
       [0.0509672 , 0.86364328, 0.65484514, 0.47734828]]
targets=[1 2 2]
out =  tf.nn.in_top_k(predictions, targets, 2)   # 这里简单一点 设置成前2大

输出参数

out = [False False True]  #后面可以进行类型转换,计数True的个数

本篇链接:
https://blog.csdn.net/weixin_42385606/article/details/105590792
参考:
1、https://blog.csdn.net/wuguangbin1230/article/details/72820627
2、https://www.cnblogs.com/wuzhitj/p/6431381.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章