TOP1精度と精度TOP5を達成Pytorch

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

おすすめ

転載: www.cnblogs.com/yqpy/p/11391972.html