PyTorch 的负对数似然损失,nn.NLLLoss
定义为:
因此,如果以单批处理的标准重量计算损失,则损失的公式始终为:
-1 * (prediction of model for correct class)
示例:
正确类别 = 0
正确类别的模型预测 = 0.5
损失 = -1 * 0.5
那么,如果计算损失时没有涉及对数函数,为什么它被称为“负对数似然损失”?
最佳答案
确实没有 log
被用来计算 nn.NLLLoss
的结果,所以这可能有点令人困惑。但是,我相信之所以这样调用它是因为它期望接收对数概率:
The input given through a forward call is expected to contain log-probabilities of each class. - docs
最后,将它包含在名称中没有多大意义,因为您可能还想将此函数应用于非对数概率...
关于pytorch - Pytorch NLLLOSS的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69325760/