溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在pytorch 中計算精度、回歸率、F1 score等指標的實例

發(fā)布時間:2020-10-01 14:55:55 來源:腳本之家 閱讀:763 作者:Link2Link 欄目:開發(fā)技術

pytorch中訓練完網(wǎng)絡后,需要對學習的結果進行測試。官網(wǎng)上例程用的方法統(tǒng)統(tǒng)都是正確率,使用的是torch.eq()這個函數(shù)。

但是為了更精細的評價結果,我們還需要計算其他各個指標。在把官網(wǎng)API翻了一遍之后發(fā)現(xiàn)并沒有用于計算TP,TN,F(xiàn)P,F(xiàn)N的函數(shù)。。。

在動了無數(shù)歪腦筋之后,心想pytorch完全支持numpy,那能不能直接進行判斷,試了一下果然可以,上代碼:

# TP predict 和 label 同時為1
TP += ((pred_choice == 1) & (target.data == 1)).cpu().sum()
# TN predict 和 label 同時為0
TN += ((pred_choice == 0) & (target.data == 0)).cpu().sum()
# FN predict 0 label 1
FN += ((pred_choice == 0) & (target.data == 1)).cpu().sum()
# FP predict 1 label 0
FP += ((pred_choice == 1) & (target.data == 0)).cpu().sum()

p = TP / (TP + FP)
r = TP / (TP + FN)
F1 = 2 * r * p / (r + p)
acc = (TP + TN) / (TP + TN + FP + FN

這樣就能看到各個指標了。

因為target是Variable所以需要用target.data取到對應的tensor,又因為是在gpu上算的,需要用 .cpu() 移到cpu上。

因為這是一個batch的統(tǒng)計,所以需要用+=累計出整個epoch的統(tǒng)計。當然,在epoch開始之前需要清零

以上這篇在pytorch 中計算精度、回歸率、F1 score等指標的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI