解决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中的魔法方法深入理解
Jul 09 Python
python3音乐播放器简单实现代码
Apr 20 Python
对numpy中轴与维度的理解
Apr 18 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 Python
Python字符串的常见操作实例小结
Apr 08 Python
详解numpy的argmax的具体使用
May 27 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
Python内置类型性能分析过程实例
Jan 29 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
Python try except else使用详解
Jan 12 Python
Python+Appium自动化测试的实战
Jun 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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php url路由入门实例
2014/04/23 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
python轻松实现代码编码格式转换
2015/03/26 Python
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
如何完美的建立一个python项目
2020/10/09 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
python中round函数保留两位小数的方法
2020/12/04 Python
python opencv实现图像配准与比较
2021/02/09 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
质检部岗位职责
2013/11/11 职场文书
房屋授权委托书范本
2014/10/07 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
现场施工员岗位职责
2015/04/11 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
技能培训通讯稿
2015/07/18 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
图文详解matlab原始处理图像几何变换
2021/07/09 Python
java调用Restful接口的三种方法
2021/08/23 Java/Android