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

yipeiwu_com7年前Python基础

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

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

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

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

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

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

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

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

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

相关文章

python 多进程并行编程 ProcessPoolExecutor的实现

使用 ProcessPoolExecutor from concurrent.futures import ProcessPoolExecutor, as_completed im...

python使用sqlite3时游标使用方法

cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等...

使用Python脚本将绝对url替换为相对url的教程

公司一个项目需要上传图片,一开始同事将图片上传后结合当前主机拼成了一个绝对的URL(http://192.168.1.1:888/m/getimg?filename=xxx.jp...

Python Print实现在输出中插入变量的例子

Python Print实现在输出中插入变量的例子

如果想在打印的字符串中的任意地方加入任意的变量,可以使用python的格式化输出。 用例如下: s = 'Hello' x = len(s) print("The length...

Python模糊查询本地文件夹去除文件后缀的实例(7行代码)

7行代码实现的,废话不多说,直接上代码: import os,re def fuzzy_search(path): word= input('请输入要查询的内容:') fo...