最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

交叉熵計算公式

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

nn.NLLLoss

官方文檔中介紹稱:

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

CrossEntropyLoss()=log_softmax() + NLLLoss() 

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

計算公式

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ǔ)上,再進行一次log運算,此時結(jié)果有正有負,log函數(shù)的值域是負無窮到正無窮,當x在0—1之間的時候,log(x)值在負無窮到0之間。

nn.NLLLoss

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

代碼示例:

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è)標簽是[0,1,2],第一行取第0個元素,第二行取第1個,第三行取第2個,去掉負號,即[0.3168,3.3093,0.4701],求平均值,就可以得到損失值。

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

#驗證一下

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)

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

總結(jié)

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

相關(guān)文章

  • Python實現(xiàn)仿射密碼的思路詳解

    Python實現(xiàn)仿射密碼的思路詳解

    這篇文章主要介紹了Python實現(xiàn)仿射密碼的思路詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Python自動化測試selenium指定截圖文件名方法

    Python自動化測試selenium指定截圖文件名方法

    這篇文章主要介紹了Python自動化測試selenium指定截圖文件名方法,Selenium?支持?Web?瀏覽器的自動化,它提供一套測試函數(shù),用于支持?Web?自動化測試,下文基于python實現(xiàn)指定截圖文件名方法,需要的小伙伴可以參考一下
    2022-05-05
  • centos安裝python3.10的教程

    centos安裝python3.10的教程

    文章主要介紹了在CentOS系統(tǒng)上安裝Python 3.10.1的步驟,包括升級OpenSSL到1.1.1,以及詳細的操作過程,如切換目錄、下載安裝包、解壓、配置、編譯安裝、創(chuàng)建軟連接和驗證等
    2025-03-03
  • python redis存入字典序列化存儲教程

    python redis存入字典序列化存儲教程

    這篇文章主要介紹了python redis存入字典序列化存儲教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 降低python版本的操作方法

    降低python版本的操作方法

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于降低python版本的操作方法,需要的朋友們可以學(xué)習(xí)參考下。
    2020-09-09
  • Python實現(xiàn)多個視頻合成一個視頻的功能

    Python實現(xiàn)多個視頻合成一個視頻的功能

    這篇文章主要介紹了可以將多個視頻拼接為一個視頻的Python工具代碼,文中的代碼講解詳細,對我們學(xué)習(xí)Python有一定的幫助,快來跟隨小編一起學(xué)習(xí)一下吧
    2021-12-12
  • Pytorch計算網(wǎng)絡(luò)參數(shù)的兩種方法

    Pytorch計算網(wǎng)絡(luò)參數(shù)的兩種方法

    PyTorch是一個流行的深度學(xué)習(xí)框架,它允許研究人員和開發(fā)者快速構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò),計算一個PyTorch網(wǎng)絡(luò)的參數(shù)量通常涉及兩個步驟,本文給大家介紹了在PyTorch中計算網(wǎng)絡(luò)參數(shù)量的一般方法,需要的朋友可以參考下
    2024-05-05
  • flask框架url與重定向操作實例詳解

    flask框架url與重定向操作實例詳解

    這篇文章主要介紹了flask框架url與重定向操作,結(jié)合實例形式詳細分析了flask框架URL映射、傳參、重定向等相關(guān)概念、原理與操作注意事項,需要的朋友可以參考下
    2020-01-01
  • python sqlite的Row對象操作示例

    python sqlite的Row對象操作示例

    這篇文章主要介紹了python sqlite的Row對象操作,結(jié)合實例形式分析了Python使用sqlite的Row對象進行數(shù)據(jù)的查詢操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-09-09
  • tensorflow: 查看 tensor詳細數(shù)值方法

    tensorflow: 查看 tensor詳細數(shù)值方法

    今天小編就為大家分享一篇tensorflow: 查看 tensor詳細數(shù)值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論

安顺市| 长沙市| 涞源县| 云林县| 建湖县| 正宁县| 宣武区| 资阳市| 宁夏| 桑日县| 湘潭市| 进贤县| 白河县| 拉萨市| 朝阳市| 威信县| 栾城县| 昆山市| 敦化市| 莱芜市| 靖州| 大宁县| 柳林县| 封开县| 江门市| 湖口县| 康乐县| 台安县| 博野县| 财经| 景东| 钟山县| 平乡县| 高阳县| 额济纳旗| 封丘县| 枞阳县| 亚东县| 章丘市| 新闻| 黎川县|