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企服之家,中国第一个企服评测及商务社交产业平台。 |