pytorch中损失函数nn.CrossEntropyLoss与激活函数softmax的关系

在多分类单标签任务中,常使用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()的区别【坑】

你可能感兴趣的:(Experiment,pytorch,python)