UserWarning: reduction: ‘mean‘ divides the total loss by both the batch size and the support size.


🤵 AuthorHorizon John

编程技巧篇各种操作小结

🎇 机器视觉篇会变魔术 OpenCV

💥 深度学习篇简单入门 PyTorch

🏆 神经网络篇经典网络模型

💻 算法篇再忙也别忘了 LeetCode


错误提示

损失函数计算损失时,出现 UserWarning

UserWarning: reduction: 'mean' divides the total loss by both the batch size and the support size.'batchmean' divides only by the batch size, and aligns with the KL div math definition.'mean' will be changed to behave the same as 'batchmean' in the next major release. "reduction: 'mean' divides the total loss by both the batch size and the support size."


错误原因

出现这个错误一般选择的损失函数为:torch.nn.KLDivLoss()

错误翻译成中文为:

UserWarning: reduction: 'mean’将总损失除以批处理大小和支持大小。'batchmean’只除以批大小,并与KL div的数学定义一致。
在下一个主要版本中,'mean’的行为将与’batchmean’相同。reduction: 'mean’平均值’将总损失除以批大小和支持大小。

主要就是因为 reduction 参数的选择问题,默认时 mean,而其是在 batchmean 的基础上计算每个元素的loss值, batchmean 是计算每个 batch_size 的平均值 ;


解决方案

添加 reduction = batchmean

修改前:

criterion = torch.nn.KLDivLoss()

修改后:

criterion = torch.nn.KLDivLoss(reduction = batchmean)

🈺 喜欢的 留个 关注 、 加 点赞 哦 ~



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Horizon John

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值