解决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中使用元类的教程
Apr 28 Python
PYTHON 中使用 GLOBAL引发的一系列问题
Oct 12 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
django 多对多表的创建和插入代码实现
Sep 09 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
python滑块验证码的破解实现
Nov 10 Python
基于matplotlib xticks用法详解
Apr 16 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 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连接Oracle for NT 远程数据库
2006/10/09 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
linux下编译安装memcached服务
2014/08/03 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
vue.js前后端数据交互之提交数据操作详解
2018/04/24 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
Python递归函数实例讲解
2019/02/27 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
银行毕业实习自我鉴定
2013/09/19 职场文书
大学生创业感言
2014/01/25 职场文书
化学教学随笔感言
2014/02/19 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
代办社保委托书范文
2014/10/06 职场文书
优秀大学生自荐信
2015/03/26 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
css3 文字断裂效果
2022/04/22 HTML / CSS