解决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 相关文章推荐
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
python生成excel的实例代码
Nov 08 Python
Python判断文件和字符串编码类型的实例
Dec 21 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
Django中使用Whoosh进行全文检索的方法
Mar 31 Python
Python选择网卡发包及接收数据包
Apr 04 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
python实现飞行棋游戏
Feb 05 Python
TensorBoard 计算图的查看方式
Feb 15 Python
如何解决安装python3.6.1失败
Jul 01 Python
python爬虫工具例举说明
Nov 30 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
基于文本的搜索
2006/10/09 PHP
PHP实现MySQL更新记录的代码
2008/06/07 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
如何基于Python实现数字类型转换
2020/02/07 Python
python接入支付宝的实例操作
2020/07/20 Python
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
营销主管自我评价怎么写
2013/09/19 职场文书
农村党支部先进事迹
2014/01/14 职场文书
临床医学专业求职信
2014/08/08 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
民主生活会意见
2015/06/05 职场文书
单位工作证明范本
2015/06/15 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
Python+Appium实现自动抢微信红包
2021/05/21 Python
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android