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)  

上面是計算概率向量最大的前五中出現正確標籤的樣本數,最終記得轉換過來:
*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]

參考:
1、https://blog.csdn.net/wuguangbin1230/article/details/72820627
2、https://www.cnblogs.com/wuzhitj/p/6431381.html

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