TOP5 TOP1は前に明らかになっていないと何が把握するために、実際には、非常に簡単です、TOP1は「厳しい」通常の精度、TOP1よりもTOP5尺度である、両方の対策の指標であります
具体的には、10ポイント必要なクラスのそのような合計、各出力ソーター10は、確率値であり、その分類に対応するTOP1最大確率値の10の値を正確に正しい周波数である、1に加算TOP5確率値が上位5つのうちの大きい順に10であり、そして、これらの上位5つのカテゴリの正しい分類があるかどうかを確認し、その後周波数を計算します。Pytorchは、以下のことを実現します:
DEF evaluteTop1(モデル、ローダ): model.eval() 正しい = 0 合計 = LEN(loader.dataset) のために、X、Y におけるローダ: X、Y = x.to(デバイス)、y.to(デバイス) トーチと.no_grad(): logits = モデル(X) PRED = logits.argmax(=暗く1 ) 正しい + = 。。torch.eq(predは、Y).SUM()フロート()項目() #正しい+ =トーチ。 EQ(predは、Y).SUM()。項目() 戻り正しい/ 総 DEF evaluteTop5(モデル、ローダ)。 model.eval() 正しい = 0 合計 = LEN(loader.dataset) のために、X、Y におけるローダ: X、Y = x.to(デバイス)、y.to(デバイス) torch.no_grad有する(): logits = モデル(X) MAXK = MAX((1,5 )) _、predを = logits.topk(MAXK、1 、真の、真の) 正しい + = torch.eq(predは、Y).SUM()フロート()項目() を返す /正しいですトータル
TOPKが見る特定の用途の機能https://blog.csdn.net/u014264373/article/details/86525621