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