溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

pytorch如何實(shí)現(xiàn)cross entropy損失函數(shù)計(jì)算方式

發(fā)布時(shí)間:2021-05-20 14:37:32 來源:億速云 閱讀:233 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下pytorch如何實(shí)現(xiàn)cross entropy損失函數(shù)計(jì)算方式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

均方損失函數(shù):

pytorch如何實(shí)現(xiàn)cross entropy損失函數(shù)計(jì)算方式

這里 loss, x, y 的維度是一樣的,可以是向量或者矩陣,i 是下標(biāo)。

很多的 loss 函數(shù)都有 size_average 和 reduce 兩個(gè)布爾類型的參數(shù)。因?yàn)橐话銚p失函數(shù)都是直接計(jì)算 batch 的數(shù)據(jù),因此返回的 loss 結(jié)果都是維度為 (batch_size, ) 的向量。

(1)如果 reduce = False,那么 size_average 參數(shù)失效,直接返回向量形式的 loss

(2)如果 reduce = True,那么 loss 返回的是標(biāo)量

a)如果 size_average = True,返回 loss.mean();
b)如果 size_average = False,返回 loss.sum();

注意:默認(rèn)情況下, reduce = True,size_average = True

import torch
import numpy as np

1、返回向量

loss_fn = torch.nn.MSELoss(reduce=False, size_average=False)
a=np.array([[1,2],[3,4]])
b=np.array([[2,3],[4,5]])
input = torch.autograd.Variable(torch.from_numpy(a))
target = torch.autograd.Variable(torch.from_numpy(b))

這里將Variable類型統(tǒng)一為float()(tensor類型也是調(diào)用xxx.float())

loss = loss_fn(input.float(), target.float())
print(loss)
tensor([[ 1., 1.],
  [ 1., 1.]])

2、返回平均值

a=np.array([[1,2],[3,4]])
b=np.array([[2,3],[4,4]])
loss_fn = torch.nn.MSELoss(reduce=True, size_average=True)
input = torch.autograd.Variable(torch.from_numpy(a))
target = torch.autograd.Variable(torch.from_numpy(b))
loss = loss_fn(input.float(), target.float())
 print(loss)
tensor(0.7500)

pytorch的優(yōu)點(diǎn)

1.PyTorch是相當(dāng)簡潔且高效快速的框架;2.設(shè)計(jì)追求最少的封裝;3.設(shè)計(jì)符合人類思維,它讓用戶盡可能地專注于實(shí)現(xiàn)自己的想法;4.與google的Tensorflow類似,F(xiàn)AIR的支持足以確保PyTorch獲得持續(xù)的開發(fā)更新;5.PyTorch作者親自維護(hù)的論壇 供用戶交流和求教問題6.入門簡單

以上是“pytorch如何實(shí)現(xiàn)cross entropy損失函數(shù)計(jì)算方式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI