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中的不可变数据类型与可变数据类型详解

前言 python与C/C++不一样,它的变量使用有自己的特点,当初学python的时候,一定要记住“一切皆为对象,一切皆为对象的引用”这句话,其实这个特点类似于JAVA,所以在pyth...

Python 实现的 Google 批量翻译功能

首先声明,没有什么不良动机,因为经常会用 translate.google.cn,就想着用 Python 模拟网页提交实现文档的批量翻译。据说有 API,可是要收费。 生成 Token...

Python+OpenCV实现将图像转换为二进制格式

在学习tensorflow的过程中,有一个问题,tensorflow在训练的过程中读取的是二进制图像数据库文件,而不是图像文件,因此 在进行训练、测试之前需要将图像文件转换为二进制格式。...

python实现beta分布概率密度函数的方法

python实现beta分布概率密度函数的方法

如下所示: beta分布的最大特点是其多样性, 从下图可以看出, beta分布具有各种形态, 有U形, 类似正态分布的形状, 类似uniform分布的形状等, 正式这一特质使beta...

python将print输出的信息保留到日志文件中

具体代码如下所示: import sys import os import sys import io import datetime def create_detail_day()...