在多分类单标签任务中,常使用CrossEntropyLoss作为损失函数,而使用softmax作为对应的最后一层的激活函数。
在Pytorch中,nn.CrossEntropyLoss中已经实现了softmax功能,因此在分类任务的最后一层fc后不需要加入softmax激活函数。因为在计算损失函数时,nn.CrossEntropyLoss函数会自动先将模型输出作一个softmax计算,再与ground truth作损失比较。
NLLloss+log+softmax就是CrossEntropyLoss
,而其中的NLLloss就是在做交叉熵损失函数的最后一步:预测结果的删除负号,然后求和。
softmax + log + NLLLoss = CrossEntropyLoss
交叉熵损失,softmax函数和 torch.nn.CrossEntropyLoss()
神经网络中NLLLoss和CrossEntropyLoss的快速理解
Pytorch 关于nn.CrossEntropyLoss()与nn.BCEloss()以及nn.BCEWithLogitsLoss()的区别【坑】