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设计】。

相关文章

教你使用python画一朵花送女朋友

教你使用python画一朵花送女朋友

本文实例为大家分享了用python画一朵花的具体代码,供大家参考,具体内容如下 第一种,画法 from turtle import * import time setup(60...

pytorch实现focal loss的两种方式小结

我就废话不多说了,直接上代码吧! import torch import torch.nn.functional as F import numpy as np from torch...

Python上下文管理器和with块详解

上下文管理器和with块,具体内容如下 上下文管理器对象存在的目的是管理 with 语句,就像迭代器的存在是为了管理 for 语句一样。 with 语句的目的是简化 try/finall...

python向图片里添加文字

python向图片里添加文字

本文实例为大家分享了python图片添加文字的具体代码,供大家参考,具体内容如下 #!/usr/bin/python #-*-coding:utf-8-*- from PIL im...

Flask框架中request、请求钩子、上下文用法分析

本文实例讲述了Flask框架中request、请求钩子、上下文用法。分享给大家供大家参考,具体如下: request 就是flask中代表当前请求的request对象: 常用的属性如下:...