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

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

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

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

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

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

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

多標(biāo)簽二分類

2. 比較CrossEntropyLoss() 和NLLLoss()

(1). CrossEntropyLoss():

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

參數(shù):

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

計(jì)算公式:

weight = None時(shí):

weight ≠ None時(shí):

輸入:

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(), 具體等價(jià)應(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)

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

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

1)L1損失函數(shù)

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

2)L2損失函數(shù)

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

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

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

4)二分類交叉熵?fù)p失函數(shù)

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

5)多分類交叉熵?fù)p失函數(shù)

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

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

相關(guān)文章

  • python-pymysql如何實(shí)現(xiàn)更新mysql表中任意字段數(shù)據(jù)

    python-pymysql如何實(shí)現(xiàn)更新mysql表中任意字段數(shù)據(jù)

    這篇文章主要介紹了python-pymysql如何實(shí)現(xiàn)更新mysql表中任意字段數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python全棧之進(jìn)程和守護(hù)進(jìn)程

    Python全棧之進(jìn)程和守護(hù)進(jìn)程

    這篇文章主要為大家介紹了Python進(jìn)程和守護(hù)進(jìn)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python安裝模塊如何通過setup.py安裝(超簡(jiǎn)單)

    python安裝模塊如何通過setup.py安裝(超簡(jiǎn)單)

    這篇文章主要介紹了python安裝模塊如何通過setup.py安裝,安裝方法其實(shí)很簡(jiǎn)單,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-05-05
  • Python利用pandas處理CSV文件的用法示例

    Python利用pandas處理CSV文件的用法示例

    pandas是一個(gè)第三方數(shù)據(jù)分析庫,其集成了大量的數(shù)據(jù)分析工具,可以方便的處理和分析各類數(shù)據(jù),本文將給大家介紹Python利用pandas處理CSV文件的用法示例,文中通過代碼和圖文講解的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • django中ORM模型常用的字段的使用方法

    django中ORM模型常用的字段的使用方法

    這篇文章主要介紹了django中ORM模型常用的字段的使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python 支付整合開發(fā)包的實(shí)現(xiàn)

    Python 支付整合開發(fā)包的實(shí)現(xiàn)

    這篇文章主要介紹了Python 支付整合開發(fā)包的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Numpy 中的矩陣求逆實(shí)例

    Numpy 中的矩陣求逆實(shí)例

    今天小編就為大家分享一篇Numpy 中的矩陣求逆實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python字典生成式、集合生成式、生成器用法實(shí)例分析

    Python字典生成式、集合生成式、生成器用法實(shí)例分析

    這篇文章主要介紹了Python字典生成式、集合生成式、生成器用法,結(jié)合實(shí)例形式分析了Python字典生成式、集合生成式、生成器相關(guān)原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • Python提取視頻幀圖片實(shí)例代碼

    Python提取視頻幀圖片實(shí)例代碼

    大家好,本篇文章主要講的是Python提取視頻幀圖片實(shí)例代碼,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Django CBV類的用法詳解

    Django CBV類的用法詳解

    這篇文章主要介紹了Django CBV類的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

奉化市| 西贡区| 盐亭县| 临清市| 班戈县| 梓潼县| 山阳县| 安徽省| 安岳县| 静安区| 贵德县| 泸水县| 岳西县| 中江县| 隆尧县| 赫章县| 外汇| 开封市| 福安市| 乐至县| 龙江县| 呼玛县| 商水县| 高邑县| 富裕县| 延寿县| 大英县| 库车县| 邳州市| 都匀市| 蓬莱市| 龙岩市| 柘荣县| 清苑县| 淳化县| 五家渠市| 榆林市| 应用必备| 定襄县| 苍溪县| 东乡|