解决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中的with...as用法介绍
May 28 Python
python3 实现的人人影视网站自动签到
Jun 19 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
Mar 19 Python
python实现AES加密解密
Mar 28 Python
python plotly画柱状图代码实例
Dec 13 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
Python之关于类变量的两种赋值区别详解
Mar 12 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
Mar 23 Python
Python3实现建造者模式的示例代码
Jun 28 Python
如何利用Python 进行边缘检测
Oct 14 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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程序员工具
2008/05/26 PHP
PHP 字符串 小常识
2009/06/05 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
php定界符
2014/06/19 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
PHP加密解密类实例代码
2016/07/20 PHP
如何在PHP中使用数组
2020/06/09 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
js取得html iframe中的元素和变量值
2014/06/30 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
Python使用folium excel绘制point
2019/01/03 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
美国最大网上鞋店:Zappos
2016/07/25 全球购物
《太阳》教学反思
2014/02/21 职场文书
三八妇女节慰问信
2015/02/14 职场文书
2015年护士节慰问信
2015/03/23 职场文书
学校通报表扬范文
2015/05/04 职场文书
孝女彩金观后感
2015/06/10 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers