深度學習基礎系列(二)| 常見的Top-1和Top-5有什么區別?


  在深度學習過程中,會經常看見各成熟網絡模型在ImageNet上的Top-1准確率和Top-5准確率的介紹,如下圖所示:

 

  那Top-1 Accuracy和Top-5 Accuracy是指什么呢?區別在哪呢?我們知道ImageNet有大概1000個分類,而模型預測某張圖片時,會給出1000個按概率從高到低的類別排名,

  所謂的Top-1 Accuracy是指排名第一的類別與實際結果相符的准確率,

  而Top-5 Accuracy是指排名前五的類別包含實際結果的准確率。

  下面的代碼可更為直觀地說明其中的區別:

import numpy as np
import tensorflow.keras.backend as K

# 隨機輸出數字0~9的概率分布
output = K.random_uniform_variable(shape=(1, 10), low=0, high=1)
# 實際結果假設為數字1
actual_pos = K.variable(np.array([1]), dtype='int32')
print("數字0~9的預測概率分布為:", K.eval(output))
print("實際結果為數字:", K.eval(actual_pos))
print("實際結果是否in top 1: ", K.eval(K.in_top_k(output, actual_pos, 1)))
print("實際結果是否in top 5: ", K.eval(K.in_top_k(output, actual_pos, 5)))

  運行后再看看結果為:

數字0~9的預測概率分布為: [[0.301023   0.8182187  0.71007144 0.80164504 0.7268218  0.58599055 0.19250274 0.9076816  0.8101771  0.49439466]]
實際結果為數字: [1]
實際結果是否in top 1:  [False]
實際結果是否in top 5:  [ True]

  從結果上看,output中排名最高的值為0.9076816,其對應的數字為7,而實際數字為1,故不在Top1,而數字1對應的值為0.8182187,排名第二,故在Top5內。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM