解决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
投稿
猜你喜欢
asp如何向客户端发送提示“出错信息”?
2010-06-09 18:50:00
如何使用 SQL Server 数据库查询累计值
2008-12-03 15:27:00
利用Python如何制作好玩的GIF动图详解
2023-03-02 10:47:47
php防止sql注入示例分析和几种常见攻击正则表达式
2023-11-23 17:01:02
php控制文件下载速度的方法
2023-07-19 00:21:30
讲解MySQL数据库的数据类型和建库策略
2008-12-17 14:39:00
MongoDB为用户设置访问权限
2023-07-16 06:03:52
用Python逐行分析文件方法
2022-07-10 10:17:49
oracle10g 数据备份与导入
2009-06-10 18:21:00
python实现猜数字游戏(无重复数字)示例分享
2023-12-15 19:48:46
python办公自动化之excel的操作
2023-11-20 14:01:01
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2023-05-25 23:48:29
GO语言的IO方法实例小结
2023-09-17 08:47:24
linux下安装php扩展memcache的方法
2023-11-21 19:49:02
python中lambda函数 list comprehension 和 zip函数使用指南
2021-08-28 22:16:21
Python面向对象之静态属性、类方法与静态方法分析
2021-03-28 15:14:22
asp显示左边的n个字符自动识别汉字的函数
2007-09-13 12:16:00
pytorch简单实现神经网络功能
2022-02-21 23:29:49
Python基于多线程实现ping扫描功能示例
2023-08-02 17:30:09
pycharm如何设置自动生成作者信息
2021-01-21 22:20:58