Pytorch实用教程:多分类任务中使用的交叉熵丧失函数nn.CrossEntropyLoss ...

愛在花開的季節  金牌会员 | 2024-6-22 14:56:29 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 557|帖子 557|积分 1671

nn.CrossEntropyLoss 在 PyTorch 中是处理多分类问题的常用丧失函数,它是两个函数 nn.LogSoftmax 和 nn.NLLLoss(Negative Log Likelihood Loss)的组合。使用这个丧失函数可以直接从模型得到原始的输出分数(logits),而不必要单独对输出进行 Softmax 处理。下面详细先容这个丧失函数的关键特点、工作原理和使用方式。
工作原理

nn.CrossEntropyLoss 首先对网络的输出应用 LogSoftmax。这意味着网络输出的 logits(原始预测值)被转换成概率的对数情势。然后,它使用这些对数概率和真实标签盘算 NLLLoss。
详细来说,公式可以表示为:
[ \text{Loss}(x, \text{class}) = -\log\left(\frac{\exp(x[\text{class}])}{\sum_j \exp(x[j])}\right) ]
[ \text{Loss}(x, \text{class}) = -x[\text{class}] + \log\left(\sum_j \exp(x[j])\right) ]
其中:


  • ( x ) 是模型输出的 logits。
  • ( \text{class} ) 是真实的类别标签(非 one-hot 编码)。
参数详解



  • weight (Tensor, optional): 手动指定每个类的权重。如果给定,必须是一个长度为 C 的 Te

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表