log_softmax
function:torch.nn.functional.log_softmax(x, dim=None)
nn:torch.nn.LogSoftmax(dim=None)
(對於神經網絡nn,上式是定義,在feed的時候讀入的參數和nn.functional是類似的)
如:
nll_loss
The negative log likelihood loss
function:torch.nn.functional.nll_loss(input, target, weight=None, size_average=True, ignore_index=-100, reduce=None, reduction='elementwise_mean')
nn:torch.nn.NLLLoss(weight=None, size_average=True, ignore_index=-100, reduce=None, reduction='elementwise_mean')
如:
function:
nn:
這里的3是batch_size,5是class_num,target就是標簽,[1, 0, 4]代表這個batch里的三個標簽
注:log_softmax + nll_loss 就相當於 CrossEntropyLoss
CrossEntropyLoss
一般地,對於分類問題,當model模塊計算好每個類別對應的概率后,可以直接接上一個CrossEntropyLoss就行了
如:
注意輸入中的target是可以直接用label的index,不用轉化為one-hot向量的,nn.CrossEntropyLoss()會自動幫你轉化
建議直接參考:
https://pytorch.org/docs/stable/nn.html?highlight=nn%20crossentropy#torch.nn.CrossEntropyLoss
MSELoss
如:
參考:
https://pytorch.org/docs/master/nn.html