Pytorch训练过程出现nan的解决方式

yipeiwu_com6年前Python基础

今天使用shuffleNetV2+,使用自己的数据集,遇到了loss是nan的情况,而且top1精确率出现断崖式上升,这显示是不正常的。

在网上查了下解决方案。我的问题是出在学习率上了。

我自己做的样本数据集比较小,就三类,每类大概三百多张,初始学习率是0.5。后来设置为0.1就解决了。

按照解决方案上写的。出现nan的情况还有以下几种:

学习率太大,但是样本数据集又很小。(我的情况)

自定义的loss除以了一个很小的数字,小到接近0。

数据不干净,数据本身就有nan,可以用numpy.isnan检查。

target,即label是大于等于0的。从1到类别数目-1变化。

以上这篇Pytorch训练过程出现nan的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python3中在Anaconda环境下安装basemap包

Python3中在Anaconda环境下安装basemap包

Basemap是matplotlib子包,也是python中最常用、最方便的地理数据可视化工具之一。 在中端输入pip list先查看是否有jupyter,一般安装了Anaconda都会...

解决pandas.DataFrame.fillna 填充Nan失败的问题

如果单独是 >>> df.fillna(0) >>> print(df) # 可以看到未发生改变 >>> print(d...

python使用mysql数据库示例代码

一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可。 Linux 下的安装可能会更加简单,除了下载安装包进...

对python中for、if、while的区别与比较方法

如下所示: if应用举例: #if 若条件成立,只执行一次 #if 条件:如果条件成立,执行条件后的代码块内容,不成立,直接跳过代码块 #判断如果年龄age小于18,输出未成年 #=...

python简单实现操作Mysql数据库

用python编写数据库的代码很方便,但是如果不想自己写sql语句,其实还有更多的讨巧办法。使用webpy的db库就是不错的一个选择。当然为了使用webpy的db,之前你还需要安装MyS...