解决pytorch 交叉熵损失输出为负数的问题
作者:*小呆 时间:2022-04-29 10:17:33
网络训练中,loss曲线非常奇怪
交叉熵怎么会有负数。
经过排查,交叉熵不是有个负对数吗,当网络输出的概率是0-1时,正数。可当网络输出大于1的数,就有可能变成负数。
所以加上一行就行了
out1 = F.softmax(out1, dim=1)
补充知识:在pytorch框架下,训练model过程中,loss=nan问题时该怎么解决?
当我在UCF-101数据集训练alexnet时,epoch设为100,跑到三十多个epoch时,出现了loss=nan问题,当时是一脸懵逼,在查阅资料后,我通过减小学习率解决了问题,现总结一下出现这个问题的可能原因及解决方法:
1. 减小整体学习率。学习率比较大的时候,参数可能over shoot了,结果就是找不到极小值点;减小学习率可以让参数朝着极值点前进;
2. 改变网络宽度。有可能是网络后面的层参数更新异常,增加后面层的宽度试试;
3. 改变层的学习率。每个层都可以设置学习率,可以尝试减小后面层的学习率试试;
4. 数据归一化(减均值,除方差,或者加入normalization,例如BN、L2 norm等);
5. 加入gradient clipping;
6 输入数据含有脏数据,即NaN,一般当使用实际业务的真实数据时,容易出现脏数据。
来源:https://blog.csdn.net/qq_39575835/article/details/104353889
标签:pytorch,交叉熵损失,负数
0
投稿
猜你喜欢
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2022-04-23 02:28:25
Python生成二维码的教程详解
2023-05-31 08:41:43
分享15 超级好用得 Python 实用技巧
2023-03-01 06:42:09
python采集博客中上传的QQ截图文件
2021-03-03 16:45:25
基于element-ui中el-select下拉框选项过多的优化方案
2023-07-02 17:00:50
对python中大文件的导入与导出方法详解
2021-02-11 12:32:47
JavaScript实现淘宝网图片的局部放大功能
2023-08-25 05:44:56
详解Python3的TFTP文件传输
2023-06-01 22:29:17
Python函数式编程指南(二):从函数开始
2023-05-08 12:46:02
tensorflow 恢复指定层与不同层指定不同学习率的方法
2023-08-27 23:09:14
python 共现矩阵的实现代码
2021-12-22 14:42:33
Python中getattr函数和hasattr函数作用详解
2022-10-29 15:42:11
golang中之strconv包的具体使用方法
2024-02-01 00:03:20
Python实现的栈(Stack)
2022-12-18 20:35:51
用Python实现一个模仿UP主弹幕控制的直播间功能
2023-02-24 18:13:27
Pycharm新建模板默认添加个人信息的实例
2022-03-30 20:59:50
用Python实现群发邮件
2023-10-30 20:04:36
解决python中set与dict的无序问题
2021-02-24 14:50:31
php依赖注入知识点详解
2024-05-02 17:33:00
sql中返回参数的值
2024-01-29 11:29:00