Pytorch NLLLOSS 的理解
Posted
技术标签:
【中文标题】Pytorch NLLLOSS 的理解【英文标题】:Understanding of Pytorch NLLLOSS 【发布时间】:2021-11-18 08:56:24 【问题描述】:PyTorch 的负对数似然损失,nn.NLLLoss
定义为:
因此,如果使用单批次中一个的标准重量计算损失,则损失的公式始终为:
-1 *(正确类别的模型预测)
示例:
正确类别 = 0
模型预测正确 class= 0.5
损失 = -1 * 0.5
那么,如果在计算损失时不涉及对数函数,为什么将其称为“负对数似然损失”?
【问题讨论】:
【参考方案1】:确实没有使用log
来计算nn.NLLLoss
的结果,所以这可能有点令人困惑。但是,我相信它之所以被这样调用是因为它期望接收日志概率:
通过前向调用给出的输入应该包含每个类的对数概率。 - docs
最后,在名称中包含它并没有多大意义,因为您不妨将此函数应用于非对数概率...
【讨论】:
以上是关于Pytorch NLLLOSS 的理解的主要内容,如果未能解决你的问题,请参考以下文章
标签平滑Label Smoothing Demo(附pytorch的NLLLoss(),gather())
pytorch CrossEntropyLoss(), Softmax(), logSoftmax, NLLLoss
通俗理解交叉熵和KL散度(包括标签平滑的pytorch实现)