解决pytorch 交叉熵损失输出为负数的问题


Posted in Python onJuly 07, 2020

网络训练中,loss曲线非常奇怪

解决pytorch 交叉熵损失输出为负数的问题

交叉熵怎么会有负数。

经过排查,交叉熵不是有个负对数吗,当网络输出的概率是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,一般当使用实际业务的真实数据时,容易出现脏数据。

以上这篇解决pytorch 交叉熵损失输出为负数的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pycharm 使用心得(三)Hello world!
Jun 05 Python
Python中设置变量访问权限的方法
Apr 27 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
Oct 09 Python
python让列表倒序输出的实例
Jun 25 Python
pyttsx3实现中文文字转语音的方法
Dec 24 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
Jan 02 Python
Python生成并下载文件后端代码实例
Aug 31 Python
python pymysql库的常用操作
Oct 16 Python
pytorch--之halfTensor的使用详解
May 24 Python
Python基于httpx模块实现发送请求
Jul 07 #Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 #Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 #Python
浅析Python __name__ 是什么
Jul 07 #Python
Pytorch上下采样函数--interpolate用法
Jul 07 #Python
pytorch随机采样操作SubsetRandomSampler()
Jul 07 #Python
pytorch加载自己的图像数据集实例
Jul 07 #Python
You might like
PHP中include()与require()的区别说明
2010/03/10 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
express启用https使用小记
2019/05/21 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
python pygame模块编写飞机大战
2018/11/20 Python
Python元组知识点总结
2019/02/18 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
HTML文本属性&颜色控制属性的实现
2019/12/17 HTML / CSS
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
计算机网络专业自荐书
2014/06/09 职场文书
小学开学标语
2014/07/01 职场文书
秋季运动会开幕词
2015/01/28 职场文书
简历自我评价优缺点
2015/03/11 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL