亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Pytorch損失函數(shù)nn.NLLLoss2d()用法說(shuō)明

 更新時(shí)間:2020年07月07日 14:24:25   作者:起步晚就要快點(diǎn)跑  
這篇文章主要介紹了Pytorch損失函數(shù)nn.NLLLoss2d()用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

最近做顯著星檢測(cè)用到了NLL損失函數(shù)

對(duì)于NLL函數(shù),需要自己計(jì)算log和softmax的概率值,然后從才能作為輸入

輸入 [batch_size, channel , h, w]

目標(biāo) [batch_size, h, w]

輸入的目標(biāo)矩陣,每個(gè)像素必須是類(lèi)型.舉個(gè)例子。第一個(gè)像素是0,代表著類(lèi)別屬于輸入的第1個(gè)通道;第二個(gè)像素是0,代表著類(lèi)別屬于輸入的第0個(gè)通道,以此類(lèi)推。

x = Variable(torch.Tensor([[[1, 2, 1],
       [2, 2, 1],
       [0, 1, 1]],
       [[0, 1, 3],
       [2, 3, 1],
       [0, 0, 1]]]))

x = x.view([1, 2, 3, 3])
print("x輸入", x)

這里輸入x,并改成[batch_size, channel , h, w]的格式。

soft = nn.Softmax(dim=1)

log_soft = nn.LogSoftmax(dim=1)

然后使用softmax函數(shù)計(jì)算每個(gè)類(lèi)別的概率,這里dim=1表示從在1維度

上計(jì)算,也就是channel維度。logsoftmax是計(jì)算完softmax后在計(jì)算log值

手動(dòng)計(jì)算舉個(gè)栗子:第一個(gè)元素

y = Variable(torch.LongTensor([[1, 0, 1],
       [0, 0, 1],
       [1, 1, 1]]))

y = y.view([1, 3, 3])

輸入label y,改變成[batch_size, h, w]格式

loss = nn.NLLLoss2d()
out = loss(x, y)
print(out)

輸入函數(shù),得到loss=0.7947

來(lái)手動(dòng)計(jì)算

第一個(gè)label=1,則 loss=-1.3133

第二個(gè)label=0, 則loss=-0.3133

.
…
…
loss= -(-1.3133-0.3133-0.1269-0.6931-1.3133-0.6931-0.6931-1.3133-0.6931)/9 =0.7947222222222223

是一致的

注意:這個(gè)函數(shù)會(huì)對(duì)每個(gè)像素做平均,每個(gè)batch也會(huì)做平均,這里有9個(gè)像素,1個(gè)batch_size。

補(bǔ)充知識(shí):PyTorch:NLLLoss2d

我就廢話不多說(shuō)了,大家還是直接看代碼吧~

import torch
import torch.nn as nn
from torch import autograd
import torch.nn.functional as F
 
inputs_tensor = torch.FloatTensor([
[[2, 4],
 [1, 2]],
[[5, 3],
 [3, 0]],
[[5, 3],
 [5, 2]],
[[4, 2],
 [3, 2]],
 ])
inputs_tensor = torch.unsqueeze(inputs_tensor,0)
# inputs_tensor = torch.unsqueeze(inputs_tensor,1)
print '--input size(nBatch x nClasses x height x width): ', inputs_tensor.shape
 
targets_tensor = torch.LongTensor([
 [0, 2],
 [2, 3]
])
 
targets_tensor = torch.unsqueeze(targets_tensor,0)
print '--target size(nBatch x height x width): ', targets_tensor.shape
 
inputs_variable = autograd.Variable(inputs_tensor, requires_grad=True)
inputs_variable = F.log_softmax(inputs_variable)
targets_variable = autograd.Variable(targets_tensor)
 
loss = nn.NLLLoss2d()
output = loss(inputs_variable, targets_variable)
print '--NLLLoss2d: {}'.format(output)

以上這篇Pytorch損失函數(shù)nn.NLLLoss2d()用法說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python列表切片操作實(shí)例探究(提取復(fù)制反轉(zhuǎn))

    Python列表切片操作實(shí)例探究(提取復(fù)制反轉(zhuǎn))

    在Python中,列表切片是處理列表數(shù)據(jù)非常強(qiáng)大且靈活的方法,本文將全面探討Python中列表切片的多種用法,包括提取子列表、復(fù)制列表、反轉(zhuǎn)列表等操作,結(jié)合豐富的示例代碼進(jìn)行詳細(xì)講解
    2024-01-01
  • Python如何遍歷JSON所有數(shù)據(jù)

    Python如何遍歷JSON所有數(shù)據(jù)

    這篇文章主要介紹了Python如何遍歷JSON所有數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Python中表達(dá)式x += y和x = x+y 的區(qū)別詳解

    Python中表達(dá)式x += y和x = x+y 的區(qū)別詳解

    這篇文章主要跟大家介紹了關(guān)于Python中x += y和x = x+y 的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-06-06
  • Python參數(shù)解析器configparser簡(jiǎn)介

    Python參數(shù)解析器configparser簡(jiǎn)介

    configparser是python自帶的配置參數(shù)解析器,可以用于解析.config文件中的配置參數(shù),ini文件中由sections(節(jié)點(diǎn))-key-value組成,這篇文章主要介紹了Python參數(shù)解析器configparser,需要的朋友可以參考下
    2022-12-12
  • pandas series序列轉(zhuǎn)化為星期幾的實(shí)例

    pandas series序列轉(zhuǎn)化為星期幾的實(shí)例

    下面小編就為大家分享一篇pandas series序列轉(zhuǎn)化為星期幾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python數(shù)學(xué)建模StatsModels統(tǒng)計(jì)回歸之線性回歸示例詳解

    Python數(shù)學(xué)建模StatsModels統(tǒng)計(jì)回歸之線性回歸示例詳解

    這篇文章主要為大家介紹了Python數(shù)學(xué)建模中StatsModels統(tǒng)計(jì)回歸之線性回歸的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python Tensor FLow簡(jiǎn)單使用方法實(shí)例詳解

    Python Tensor FLow簡(jiǎn)單使用方法實(shí)例詳解

    這篇文章主要介紹了Python Tensor FLow簡(jiǎn)單使用方法,結(jié)合實(shí)例形式詳細(xì)分析了Tensor FLow相關(guān)概念、原理、用法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • Python學(xué)習(xí)之模塊化程序設(shè)計(jì)示例詳解

    Python學(xué)習(xí)之模塊化程序設(shè)計(jì)示例詳解

    程序設(shè)計(jì)的模塊化指的是在進(jìn)行程序設(shè)計(jì)時(shí),把一個(gè)大的程序功能劃分為若干個(gè)小的程序模塊。每一個(gè)小程序模塊實(shí)現(xiàn)一個(gè)確定的功能,并且在這些小程序模塊實(shí)現(xiàn)的功能之間建立必要的聯(lián)系。本文將利用示例詳細(xì)介紹一下Python的模塊化程序設(shè)計(jì),需要的可以參考一下
    2022-03-03
  • 將pandas.dataframe的數(shù)據(jù)寫(xiě)入到文件中的方法

    將pandas.dataframe的數(shù)據(jù)寫(xiě)入到文件中的方法

    今天小編就為大家分享一篇將pandas.dataframe的數(shù)據(jù)寫(xiě)入到文件中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 對(duì)pandas replace函數(shù)的使用方法小結(jié)

    對(duì)pandas replace函數(shù)的使用方法小結(jié)

    今天小編就為大家分享一篇對(duì)pandas replace函數(shù)的使用方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論