9.7.3 损失函数

回忆一下,super(MaskedSoftmaxCELoss, self).forward就相当于直接计算损失函数,这是nn.Module的普遍做法;还要注意nn.CrossEntropyLoss会对传入的数据做Softmax,不需要我们传入一个已经做了Softmax的数据
nn.CrossEntropyLoss的输入要求如下
image
unweighted_loss的形状是(batch_size, num_steps),也就是对应每一个样本的每一步的直接的交叉熵损失

weighted_loss那一行,应该不是mean,应该是先sum之后再除以有效样本长度。评论区有人提出,但是没有明确回答,不知道是不是应该改(但其实感觉好像也有问题,因为预测输出和标签的长度可能不一致,那么有效样本长度到底该取哪一个呢?)。感觉可能不改,从后面的训练来看,这里传入的valid_len是标签的有效长度,因为输出的长度可能完全跟标签不一样,这样子就无法确定分母到底是谁的长度
image

posted @   最爱丁珰  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2024-02-15 Two Arithmetic Progressions
2024-02-15 周期
2024-02-15 最幸运的数字
2024-02-15 沙拉公主的困惑
2024-02-15 炸脖龙 I
2024-02-15 C Looooops
2024-02-15 称重
点击右上角即可分享
微信分享提示