pytorch中的CrossEntropyLoss
生活随笔
收集整理的這篇文章主要介紹了
pytorch中的CrossEntropyLoss
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這里主要探討torch.nn.CrossEntropyLoss函數(shù)的用法。
使用方法如下:
# 首先定義該類(lèi) loss = torch.nn.CrossEntropyLoss() #然后傳參進(jìn)去 loss(target, label)第一個(gè)參數(shù)的維度為m1 * m2,第二個(gè)參數(shù)維度為m1。我們?cè)谧龆喾诸?lèi)問(wèn)題的時(shí)候,target應(yīng)該為我們網(wǎng)絡(luò)生成的值,而label則是非one-hot類(lèi)型的值。
用手寫(xiě)體數(shù)字識(shí)別簡(jiǎn)單舉個(gè)例子:
for (trainX,trainY) in trainLoader: # forwardout = net(trainX) # batch_size * num_classesloss = loss_fn(out, trainY) # backwardoptimizer.zero_grad()loss.backward()optimizer.step()另外,trainY必須為L(zhǎng)ong類(lèi)型,如果為非類(lèi)型則會(huì)報(bào)錯(cuò)。RuntimeError: Expected object of scalar type Long but got scalar type Float for argument #2 'trainY'
CrossEntropyLoss還會(huì)自動(dòng)對(duì)out作用softmax。
總結(jié)
以上是生活随笔為你收集整理的pytorch中的CrossEntropyLoss的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: nn.BCELoss与nn.CrossE
- 下一篇: 高斯判别分析(GDA)和朴素贝叶斯(NB