欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch中常用的損失函數(shù)用法說明

 更新時間:2021年05月13日 10:24:25   作者:m0_46483236  
這篇文章主要介紹了pytorch中常用的損失函數(shù)用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

1. pytorch中常用的損失函數(shù)列舉

pytorch中的nn模塊提供了很多可以直接使用的loss函數(shù), 比如MSELoss(), CrossEntropyLoss(), NLLLoss() 等

官方鏈接: https://pytorch.org/docs/stable/_modules/torch/nn/modules/loss.html

pytorch中常用的損失函數(shù)
損失函數(shù) 名稱 適用場景
torch.nn.MSELoss() 均方誤差損失 回歸
torch.nn.L1Loss() 平均絕對值誤差損失 回歸
torch.nn.CrossEntropyLoss() 交叉熵損失 多分類
torch.nn.NLLLoss() 負對數(shù)似然函數(shù)損失 多分類
torch.nn.NLLLoss2d() 圖片負對數(shù)似然函數(shù)損失 圖像分割
torch.nn.KLDivLoss() KL散度損失 回歸
torch.nn.BCELoss() 二分類交叉熵損失 二分類
torch.nn.MarginRankingLoss() 評價相似度的損失
torch.nn.MultiLabelMarginLoss() 多標簽分類的損失 多標簽分類
torch.nn.SmoothL1Loss() 平滑的L1損失 回歸
torch.nn.SoftMarginLoss() 多標簽二分類問題的損失

多標簽二分類

2. 比較CrossEntropyLoss() 和NLLLoss()

(1). CrossEntropyLoss():

torch.nn.CrossEntropyLoss(weight=None,   # 1D張量,含n個元素,分別代表n類的權(quán)重,樣本不均衡時常用
                          size_average=None, 
                          ignore_index=-100, 
                          reduce=None, 
                          reduction='mean' )

參數(shù):

weight: 1D張量,含n個元素,分別代表n類的權(quán)重,樣本不均衡時常用, 默認為None.

計算公式:

weight = None時:

weight ≠ None時:

輸入:

output: 網(wǎng)絡(luò)未加softmax的輸出

target: label值(0,1,2 不是one-hot)

代碼:

loss_func = CrossEntropyLoss(weight=torch.from_numpy(np.array([0.03,0.05,0.19,0.26,0.47])).float().to(device) ,size_average=True)
loss = loss_func(output, target)

(2). NLLLoss():

torch.nn.NLLLoss(weight=None, 
                size_average=None, 
                ignore_index=-100,
                reduce=None, 
                reduction='mean')

輸入:

output: 網(wǎng)絡(luò)在logsoftmax后的輸出

target: label值(0,1,2 不是one-hot)

代碼:

loss_func = NLLLoss(weight=torch.from_numpy(np.array([0.03,0.05,0.19,0.26,0.47])).float().to(device) ,size_average=True)
loss = loss_func(output, target)


(3). 二者總結(jié)比較:

總之, CrossEntropyLoss() = softmax + log + NLLLoss() = log_softmax + NLLLoss(), 具體等價應(yīng)用如下:

####################---CrossEntropyLoss()---#######################
 
loss_func = CrossEntropyLoss()
loss = loss_func(output, target)
 
####################---Softmax+log+NLLLoss()---####################
 
self.softmax = nn.Softmax(dim = -1)
 
x = self.softmax(x)
output = torch.log(x)
 
loss_func = NLLLoss()
loss = loss_func(output, target)
 
####################---LogSoftmax+NLLLoss()---######################
 
self.log_softmax = nn.LogSoftmax(dim = -1)
 
output = self.log_softmax(x)
 
loss_func = NLLLoss()
loss = loss_func(output, target)

補充:常用損失函數(shù)用法小結(jié)之Pytorch框架

在用深度學(xué)習(xí)做圖像處理的時候,常用到的損失函數(shù)無非有四五種,為了方便Pytorch使用者,所以簡要做以下總結(jié)

1)L1損失函數(shù)

預(yù)測值與標簽值進行相差,然后取絕對值,根據(jù)實際應(yīng)用場所,可以設(shè)置是否求和,求平均,公式可見下,Pytorch調(diào)用函數(shù):nn.L1Loss

2)L2損失函數(shù)

預(yù)測值與標簽值進行相差,然后取平方,根據(jù)實際應(yīng)用場所,可以設(shè)置是否求和,求平均,公式可見下,Pytorch調(diào)用函數(shù):nn.MSELoss

3)Huber Loss損失函數(shù)

簡單來說就是L1和L2損失函數(shù)的綜合版本,結(jié)合了兩者的優(yōu)點,公式可見下,Pytorch調(diào)用函數(shù):nn.SmoothL1Loss

4)二分類交叉熵損失函數(shù)

簡單來說,就是度量兩個概率分布間的差異性信息,在某一程度上也可以防止梯度學(xué)習(xí)過慢,公式可見下,Pytorch調(diào)用函數(shù)有兩個,一個是nn.BCELoss函數(shù),用的時候要結(jié)合Sigmoid函數(shù),另外一個是nn.BCEWithLogitsLoss()

5)多分類交叉熵損失函數(shù)

也是度量兩個概率分布間的差異性信息,Pytorch調(diào)用函數(shù)也有兩個,一個是nn.NLLLoss,用的時候要結(jié)合log softmax處理,另外一個是nn.CrossEntropyLoss

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)提取PDF簡歷信息并存入Excel

    Python實現(xiàn)提取PDF簡歷信息并存入Excel

    作為人力資源部的小伙伴,常常需要把他人投遞的PDF簡歷資料里的關(guān)鍵信息數(shù)據(jù),提取到excel表中匯總,這個時候用Python實現(xiàn)最合適, 快來學(xué)習(xí)一下如何實現(xiàn)吧
    2022-04-04
  • Python中的choice()方法使用詳解

    Python中的choice()方法使用詳解

    這篇文章主要介紹了Python中的choice()方法使用詳解,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python基礎(chǔ)之面對對象基礎(chǔ)類和對象的概念

    python基礎(chǔ)之面對對象基礎(chǔ)類和對象的概念

    這篇文章主要介紹了python面對對象基礎(chǔ)類和對象的概念,實例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
    2021-10-10
  • Python3.8.2安裝包及安裝教程圖文詳解(附安裝包)

    Python3.8.2安裝包及安裝教程圖文詳解(附安裝包)

    這篇文章主要介紹了Python3.8.2安裝包及安裝教程圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • python調(diào)用外部程序的實操步驟

    python調(diào)用外部程序的實操步驟

    在本文里小編給大家分享了關(guān)于python如何調(diào)用外部程序的步驟和相關(guān)知識點,需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • Python的f-string使用技巧

    Python的f-string使用技巧

    Python很早就引入了一種稱為 f-string 的字符串格式化方法,它代表格式化字符串字面值,本文主要介紹了Python的f-string使用技巧,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 關(guān)于pip的安裝,更新,卸載模塊以及使用方法(詳解)

    關(guān)于pip的安裝,更新,卸載模塊以及使用方法(詳解)

    下面小編就為大家?guī)硪黄P(guān)于pip的安裝,更新,卸載模塊以及使用方法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Python TCP通信客戶端服務(wù)端代碼實例

    Python TCP通信客戶端服務(wù)端代碼實例

    這篇文章主要介紹了Python TCP通信客戶端服務(wù)端代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • TensorFlow saver指定變量的存取

    TensorFlow saver指定變量的存取

    這篇文章主要為大家詳細介紹了TensorFlow saver指定變量的存取,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 基于Pyinstaller打包Python程序并壓縮文件大小

    基于Pyinstaller打包Python程序并壓縮文件大小

    這篇文章主要介紹了基于Pyinstaller打包Python程序并壓縮文件大小,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05

最新評論