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

相关文章

利用PyCharm操作Github(仓库新建、更新,代码回滚)

利用PyCharm操作Github(仓库新建、更新,代码回滚)

  Github是目前世界上最流行的代码存储和分享平台,而PyCharm是Python圈中最流行的IDE,它很好地支持了Git操作。本文将会介绍如何利用PyCha...

Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例

Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例

本文实例讲述了Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据。分享给大家供大家参考,具体如下: 一、Logistic回归模型:   二、Logisti...

tf.truncated_normal与tf.random_normal的详细用法

本文介绍了tf.truncated_normal与tf.random_normal的详细用法,分享给大家,具体如下: tf.truncated_normal 复制代码 代码如下: tf....

Python中矩阵库Numpy基本操作详解

NumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。 下面对numpy中的操作进行总结。 numpy包含...

pow在python中的含义及用法

pow()方法返回xy(x的y次方) 的值 语法 以下是math模块pow()方法的语法: import math math.pow( x, y ) 内置的pow()方法 p...