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

Pytorch損失函數(shù)torch.nn.NLLLoss()的使用

 更新時(shí)間:2023年02月01日 09:35:27   作者:Jeremy_lf  
這篇文章主要介紹了Pytorch損失函數(shù)torch.nn.NLLLoss()的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Pytorch損失函數(shù)torch.nn.NLLLoss()

在各種深度學(xué)習(xí)框架中,我們最常用的損失函數(shù)就是交叉熵(torch.nn.CrossEntropyLoss),熵是用來描述一個(gè)系統(tǒng)的混亂程度,通過交叉熵我們就能夠確定預(yù)測數(shù)據(jù)與真是數(shù)據(jù)之間的相近程度。

交叉熵越小,表示數(shù)據(jù)越接近真實(shí)樣本。

交叉熵計(jì)算公式

就是我們預(yù)測的概率的對數(shù)與標(biāo)簽的乘積,當(dāng)qk->1的時(shí)候,它的損失接近零。

nn.NLLLoss

官方文檔中介紹稱:

nn.NLLLoss輸入是一個(gè)對數(shù)概率向量和一個(gè)目標(biāo)標(biāo)簽,它與nn.CrossEntropyLoss的關(guān)系可以描述為:softmax(x)+log(x)+nn.NLLLoss====>nn.CrossEntropyLoss

CrossEntropyLoss()=log_softmax() + NLLLoss() 

其中softmax函數(shù)又稱為歸一化指數(shù)函數(shù),它可以把一個(gè)多維向量壓縮在(0,1)之間,并且它們的和為1.

計(jì)算公式

1 

示例代碼:

import math
z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
z_exp = [math.exp(i) for i in z]  
print(z_exp)  # Result: [2.72, 7.39, 20.09, 54.6, 2.72, 7.39, 20.09] 
sum_z_exp = sum(z_exp)  
print(sum_z_exp)  # Result: 114.98 
softmax = [round(i / sum_z_exp, 3) for i in z_exp]
print(softmax)  # Result: [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]

log_softmax

log_softmax是指在softmax函數(shù)的基礎(chǔ)上,再進(jìn)行一次log運(yùn)算,此時(shí)結(jié)果有正有負(fù),log函數(shù)的值域是負(fù)無窮到正無窮,當(dāng)x在0—1之間的時(shí)候,log(x)值在負(fù)無窮到0之間。

nn.NLLLoss

此時(shí),nn.NLLLoss的結(jié)果就是把上面的輸出與Label對應(yīng)的那個(gè)值拿出來,再去掉負(fù)號,再求均值。

代碼示例:

import torch
input=torch.randn(3,3)
soft_input = torch.nn.Softmax(dim=0)
soft_input(input)
Out[20]: 
tensor([[0.7284, 0.7364, 0.3343],
        [0.1565, 0.0365, 0.0408],
        [0.1150, 0.2270, 0.6250]])

#對softmax結(jié)果取log
torch.log(soft_input(input))
Out[21]: 
tensor([[-0.3168, -0.3059, -1.0958],
        [-1.8546, -3.3093, -3.1995],
        [-2.1625, -1.4827, -0.4701]])

假設(shè)標(biāo)簽是[0,1,2],第一行取第0個(gè)元素,第二行取第1個(gè),第三行取第2個(gè),去掉負(fù)號,即[0.3168,3.3093,0.4701],求平均值,就可以得到損失值。

(0.3168+3.3093+0.4701)/3
Out[22]: 1.3654000000000002

#驗(yàn)證一下

loss=torch.nn.NLLLoss()
target=torch.tensor([0,1,2])
loss(input,target)
Out[26]: tensor(0.1365)

nn.CrossEntropyLoss

loss=torch.nn.NLLLoss()
target=torch.tensor([0,1,2])
loss(input,target)
Out[26]: tensor(-0.1399)
loss =torch.nn.CrossEntropyLoss()
input = torch.tensor([[ 1.1879,  1.0780,  0.5312],
        [-0.3499, -1.9253, -1.5725],
        [-0.6578, -0.0987,  1.1570]])
target = torch.tensor([0,1,2])
loss(input,target)
Out[30]: tensor(0.1365)

以上為全部實(shí)驗(yàn)驗(yàn)證兩個(gè)loss函數(shù)之間的關(guān)系?。?!

總結(jié)

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

相關(guān)文章

  • python+pandas分析nginx日志的實(shí)例

    python+pandas分析nginx日志的實(shí)例

    下面小編就為大家分享一篇python+pandas分析nginx日志的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 如何使用Flask-Migrate拓展數(shù)據(jù)庫表結(jié)構(gòu)

    如何使用Flask-Migrate拓展數(shù)據(jù)庫表結(jié)構(gòu)

    這篇文章主要介紹了如何使用Flask-Migrate拓展數(shù)據(jù)庫表結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python學(xué)習(xí)之hook鉤子的原理和使用

    python學(xué)習(xí)之hook鉤子的原理和使用

    這篇文章主要為大家詳細(xì)介紹了python學(xué)習(xí)之hook鉤子的原理和使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 4款Python 類型檢查工具,你選擇哪個(gè)呢?

    4款Python 類型檢查工具,你選擇哪個(gè)呢?

    這篇文章主要介紹了4款Python 類型檢查工具的相關(guān)資料,幫助是及早檢查,提前發(fā)現(xiàn)類型的錯(cuò)誤,增強(qiáng)代碼的一致性與可維護(hù)性。(還有防止脫發(fā),喵),感興趣的朋友可以了解下
    2020-10-10
  • Python跳出多重循環(huán)的方法示例

    Python跳出多重循環(huán)的方法示例

    這篇文章主要介紹了Python跳出多重循環(huán)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Django實(shí)現(xiàn)后臺上傳并顯示圖片功能

    Django實(shí)現(xiàn)后臺上傳并顯示圖片功能

    這篇文章主要介紹了Django實(shí)現(xiàn)后臺上傳并顯示圖片功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 解決c++調(diào)用python中文亂碼問題

    解決c++調(diào)用python中文亂碼問題

    這篇文章主要介紹了c++調(diào)用python中文亂碼問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • pytorch lstm gru rnn 得到每個(gè)state輸出的操作

    pytorch lstm gru rnn 得到每個(gè)state輸出的操作

    這篇文章主要介紹了pytorch lstm gru rnn 得到每個(gè)state輸出的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python?IDLE設(shè)置清屏快捷鍵的方法詳解

    Python?IDLE設(shè)置清屏快捷鍵的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Python?IDLE設(shè)置清屏快捷鍵的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下
    2022-09-09
  • 如何使用Python自動生成報(bào)表并以郵件發(fā)送

    如何使用Python自動生成報(bào)表并以郵件發(fā)送

    這篇文章主要介紹了如何使用Python自動生成報(bào)表并以郵件發(fā)送,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10

最新評論