Pytorch中的数学函数
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