Pytorch中的数学函数

log_softmax

log(softmax(X))

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

原文地址:https://www.cnblogs.com/sbj123456789/p/9532462.html