yolov5配置错误记录

Pytorch计算Loss值为Nan的一种情况【exp计算溢出,利用softmax计算的冗余性解决】 一、报错提示 FutureWarning: Non-finite norm encountered in torch.nn.utils.clip_grad_norm_; continuing anyway. Note that the default behavior will change in a future release to error out if a non-finite total norm is encountered. At that point, setting error_if_n 阅读详情

 这里是直接没有找到数据集,说明是路径错误。经过设置yaml后,

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../autodl-tmp/datasets/neu  # dataset root dir
train: train/images  # train images (relative to 'path') 118287 images
val: val/images  # val images (relative to 'path') 5000 images
test: test/images  # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# Classes
nc: 6
names:
  0: crazing
  1: inclusion
  2: patches
  3: pitted_surface
  4: rolled-in_scale
  5: scratches

出现了新的错误。

 这里显示找不到标签,就非常困惑,然后开始了一些无用 的尝试,以为是数据集的问题,甚至想换个数据集,但是还是再尝试了一下,把数据集放在yolov5下面,以及看train.py等配置文件,都没有很好的办法,然后就开始查,划分的数据集,train下的labels和images 是不是一一对应的,发现是对应的,不知道咋办,再然后发现,train下的labels文件夹,我命名出错了,我打成了lables.改正后,跑了起来。

 但是又遇到了,数据为0 的情况。

 runs下面生成的exp文件里面都是空的。没有数据。

一开始是想法是,根本没有动这个yolov5的代码,这个问题一般是在损失函数方面的,就很困惑,于是只能根据报错去查。

然后根据上面的报错:FutureWarning: Non-finite norm encountered in torch.nn.utils.clip_grad_norm_; continuing anyway. 进行了查找。

这是来自PyTorch深度学习框架的警告消息。这个警告表示在使用torch.nn.utils.clip_grad_norm_()函数时,出现了非有限值(norm)。在深度学习中,这个函数通常用于梯度裁剪(gradient clipping)以避免梯度爆炸(gradient explosion)问题。当计算梯度的范数(norm)为无穷大或非数值值时,就会触发这个警告。通常,这个问题是由梯度中存在的NaN或Inf值引起的,可以通过检查模型代码中的数据输入和处理过程来解决这个问题。此外,也可以尝试减小学习率或减小模型的复杂度来避免梯度爆炸问题。

然后就怀疑是数据的问题,因为Non-finite norm encountered这个就是指遇到非有限范数,也就是越界了。一查果然如此:

1.脏数据:训练数据(包括label)中有无异常值(nan, inf等)。
2.除0问题。这里实际上有两种可能,一种是被除数的值是无穷大,即 Nan,另一种就是0作为了除数(分母可以加一个eps=1e-8)。之前产生的 Nan 或者0,有可能会被传递下去,造成后面都是 Nan。请先检查一下神经网络中有可能会有除法的地方,例 softmax 层,再认真的检查一下数据。可以尝试加一些日志,把神经网络的中间结果输出出来,看看哪一步开始出现 Nan 。
3.可能0或者负数作为自然对数,或者 网络中有无开根号(torch.sqrt), 保证根号下>=0
4.初始参数值过大:也有可能出现 Nan 问题。输入和输出的值,最好也做一下归一化。
5.学习率设置过大:初始学习率过大,也有可能造成这个问题。如果在迭代的100轮以内,出现NaN,一般情况下的原因是因为你的学习率过高,需要降低学习率。可以不断降低学习率直至不出现NaN为止,一般来说低于现有学习率1-10倍即可。如果为了排除是不是学习率的原因,可以直接把学习率设置为0,然后观察loss是否出现Nan,如果还是出现就不是学习率的原因。需要注意的是,即使使用 adam 之类的自适应学习率算法进行训练,也有可能遇到学习率过大问题,而这类算法,一般也有一个学习率的超参,可以把这个参数改的小一些。
6.梯度过大,造成更新后的值为 Nan 。如果当前的网络是类似于RNN的循环神经网络的话,在序列比较长的时候,很容易出现梯度爆炸的问题,进而导致出现NaN,一个有效的方式是增加“gradient clipping”(梯度截断来解决):对梯度做梯度裁剪,限制最大梯度,
7.需要计算loss的数组越界(尤其是自定义了一个新的网络,可能出现这种情况)
8.在某些涉及指数计算,可能最后算得值为 INF(无穷)(比如不做其他处理的softmax中分子分母需要计算exp(x),值过大,最后可能为INF/INF,得到NaN,此时你要确认你使用的softmax中在计算exp(x)做了相关处理(比如减去最大值等等)
 

然后就开始逐项排查。暂时还未解决,解决方案将放在下篇文章中。

参考文章:

Pytorch训练模型损失Loss为Nan或者无穷大(INF)原因_loss为inf_ytusdc的博客-优快云博客

Pytorch计算Loss值为Nan的一种情况【exp计算溢出,利用softmax计算的冗余性解决】_futurewarning: non-finite norm encountered in torc_PuJiang-的博客-优快云博客

Pytorch计算Loss值为Nan的一种情况【exp计算溢出,利用softmax计算的冗余性解决】_futurewarning: non-finite norm encountered in torc_PuJiang-的博客-优快云博客

笔记:Pytorch梯度截断:torch.nn.utils.clip_grad_norm_ torch.nn.utils.clip_grad_norm_ 梯度裁剪 既然在BP过程中会产生梯度消失(就是偏导无限接近0,导致长时记忆无法更新),那么最简单粗暴的方法,设定阈值,当梯度小于阈值时,更新的梯度为阈值,(梯度裁剪解决的是梯度消失或爆炸的问题,即设定阈值)如下图所示1: 函数 torch.nn.utils.clip_grad_norm_(parameters, max_norm, norm_type=2) 官网介绍 函数定义:裁剪可迭代参数的渐变范数。范数是在所有梯度一起计算的,就好像它们被 阅读详情

相关推荐

模型训练时gpu内存不足的解决办法

最近在训练微调bert预训练模型的时候,gpu内存老是不足,跑不了一个epoch就爆掉了,在网上来来回回找了很多资料,这里把一些方法总结一下: 半精度训练 半精度float16比单精度float32占用内存小,计算更快,但是半精度也有不好的地方,它的舍入误差更大,而且在训练的时候有时候会出现nan的情况(我自己训练的时候也遇到过,解决方法可以参考我的另一篇博客)。 模型在gpu上训练,模型和输入数据都要.cuda()一下,转成半精度直接input.half()和model.half() 就行了。 另外,还有

lppfwl的博客 2万+

(完全解决)FutureWarning: Non-finite norm encountered in torch.nn.utils.clip_grad_norm_

一定要使用那种饱和类型的损失,例如你希望模型二分类,loss不应该设置为,对于类别1,希望模型输出为正无穷大,对于类别0,希望模型输出为负无穷大,这样loss不会饱和,模型会一直训练下去,很容易nan。应该改为,对模型输出的结果,加一层sigmoid,从而对于类别1,希望模型输出为1,对于类别0,模型输出为0。而对于sigmoid这种饱和函数,输出为1,输入不需要是正无穷大,6,7,8这种数字就可以差不多输出为1了。这就导致,在输出可以做到为0的情况下,我log之后就会nan。

qq_43391414的博客 6210

YOLOv5环境配置和运行(学习记录#2)

YOLOv5环境配置和运行(学习记录#2)找代码配置环境 找代码 今天要赶一下毕设进度,需要实现课堂上学生的各种姿态的识别,于是先找了找物体识别的代码,试着跑一下yolov5 找了一大堆,还是没有特别合适的 配置环境 是真的多啊~ 经典报错 Pytorch 2g 吐了 等他慢慢下吧,我得去上班了哈哈,晚上回来继续弄。 ...

qq_40626425的博客 1315

解决yolov5 使用GTX 1660 Ti训练时出现NAN的问题

yolov5训练时, box obj cls 为 nan,P R mAP@.5 mAP@.5:.95为 0 的问题。PyTorch版本与CUDA版本不匹配,导致(float16)数据类型在卷积等一些运算的时候会出现nan值。效果:训练时间从03: 40增加到06: 11,但显存增加了很多,考虑到显存可能不够的原因,决定换解决办法。修改train.py,不使用自动混合精度(amp),以及半精度浮点型数据改为单精度的浮点型运算。效果:训练时间比方法一略久一点,但显存是方法一的一半。

sadgbv的博客 2125

Jetson-nano 编译实时内核并烧录

前言 之前一篇文章介绍了正常的烧录过程,使用的是默认内核,实际工作中需要对内核打补丁升级为实时内核,并对其重编译。 一、准备内容 官网大法好 官方内核下载链接 官方交叉编译器下载链接 官方文档 ubuntu主机一台 根据官网选择下载对应的文件, 1、L4TDriver Package (BSP) source jetson内核文件。 2、官方交叉编译器 因为我们不是在jetson上直接编译,而jetson是arm平台,所以要进行交叉编译。 二、使用步骤 1.解压 内核 tar -xjf public_s

ldl371122的博客 3287

Zynq7000双核裸机开发实战:如何安全实现共享内存与乒乓RAM设计

本文深入探讨了Zynq7000双核裸机开发中的共享内存与乒乓RAM设计,重点解析了核间通信的Cache一致性处理机制和硬件级实现方案。通过实战代码示例和性能优化技巧,帮助开发者解决双核运行中的访问冲突问题,提升嵌入式系统开发效率。

weixin_29191669的博客 375

【tph-yolov5】tph-Yolov5的Pytorch环境配置和运行错误记录

Yolov5运行Pytorch环境安装

zztjl的博客 5783

abaqus 6.13安装(ubuntu 16.04LTS)

1。从iso将文件拷贝出来 2。chmod 777 -R ./* 给文件权限 3。sudo /home/xx/A/setup 4。安装licenseserver 5。拷贝lic,log文件 6。打开license sudo ./lmgrd -c path 7. 27011@xx or 27011@localhost ...

a1099313374的博客 1950

Yolov5 v7.0目标检测——详细记录环境配置、自定义数据处理、模型训练与常用错误解决方法(数据集为河道漂浮物)

YOLOv5是是YOLO系列的一个延伸,其网络结构共分为:input、backbone、neck和head四个模块,yolov5对yolov4网络的四个部分都进行了修改,并取得了较大的提升,在input端使用了Mosaic数据增强、自适应锚框计算、自适应图片缩放;在backbone端使用了Focus结构与CSP结构;在neck端添加了FPN+PAN结构;在head端改进了训练时的损失函数,使用GIOU_Loss,以及预测框筛选的DIOU_nms。

1587

golang 线上事故

golang 线上事故 最近公司要做大促的一些活动。并且单量,qps持续上涨。之前使用的是django python 语言做的一个服务端。目前已经部署的国家里面最多的国家会有300+个实例。大促期间还可能会增加一个实例数。这么多的实例部署,回滚的时间都会特变长,除了问题也不好定位。并且如此多的一个机器,连接数* 实例数也会导致DB等其他服务扛不住这么大的并发。所以决定上go服务解决性能问题。 ...

lcf枫的博客 1537

【华为OD机试真题 2025C卷新题】855、识文断句 | 机试真题+思路参考+代码分析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025C卷新题】855、识文断句 | 机试真题+思路参考+代码分析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何备战华为

KJ.JK 1850

yolov5——问题记录

简介 记录自己学习yolov5中遇到的问题,随即不定时更新,遇到问题记录下来方便回顾。 2022.05.06 1、改用VOC数据集进行训练,修改完格式后,运行train.py报错: AssertionError: train: No labels in …/train.cache. Can not train without labels. See https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data 解决方法:打开文件目录下 utils/

retainenergy的博客 9519

【华为OD机试真题】439、精准核酸检测 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

题目描述 >为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。现在给定一组确诊人品编号(X1 X2 X3.....n)在所有人当中,找出哪些人票要进行核酸检测,输出需要进行核酸检测的人数。(注意:确诊病例自身不需要再做核酸检) >  需要进行核酸检测的人,是病毒传播链条上的所有人员,即有可能通过确诊病例所能传播到的所有人   例如:A是确诊病例,A和B有接触、B和

KJ.JK 1433

在CPU上跑YOLOv5【3】——让yolov5跑起来

发布的前两篇笔记主要是我再安装配置环境方面遇到的坑的总结,(其实在发布完后,运行detect.py还是遇到了不少错误)。今天第一次让detect.py顺利跑起来了!总结一下整个过程。(其实我也有很多概念还不是很清楚,只是先记录一下成功的方法,方便回顾)先放一张detect.py运行成功截图:1、在git上将前面笔记说的yolov5项目压缩包下载好后,解压缩到自己指定的文件夹中,用Pycharm打开;2、python解释器,File->Settings->

m0_53263069的博客 3214

【信息系统项目管理师】第1章:信息化发展 考点梳理

本文主要详细梳理高项:信息化、新型基础设施建设、两化融合、数字中国、数字化转型与元宇宙等内容。

数据知道的博客 8569

38、四旋翼无人机的机械建模、控制与仿真及小型无人机高度的最优鲁棒无模型控制

本文探讨了四旋翼无人机的机械建模、控制与仿真方法,采用基于PID控制器的分层控制策略实现稳定飞行与路径跟踪,并开发了结合CAD模型与MATLAB环境的飞行模拟器。同时,针对小型无人机高度控制问题,提出了一种基于粒子群优化(PSO)的最优鲁棒无模型控制(PSO-MFC)方法,有效解决了参数整定难题,实现了零稳态误差跟踪和强抗干扰能力。两种方法在仿真中均表现出良好性能,为无人机控制系统的设计与优化提供了理论与实践基础。

l6m7n8的博客 99

入手3060显卡真香,却不知如何配置YOLOv5环境?

最近刚入手联想的r9000p/3060系列笔记本,作为学生党使用真香~ 但随之而来的问题就是由于硬件导致一些软件环境搭建十分繁琐,本人在学习机器视觉时需要借助YOLOv5来进行预训练,AI圈都知道深度学习跑起来需要NVIDIA显卡,但是3060显卡却不知如何正确匹配对应版本的pytorch,匹配之后YOLOv5依然无法正常运行到想要的结果。就以上问题,本人在此发表一篇博客,希望对各位读者起到一定帮助,同时作为以后自己搭建的参考。 1、进行YOLOv5训练的第一步就是配置一个虚拟环境(默认读者已..

zZwx123的博客 6764

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

YOLOv3的环境配置

VS2017配置YOLOv3 自身配置: GeForce GTX 1050显卡 512.15版本 Visual Studio 2017Community CUDA 10.1 cudnn 7.6.5 OpenCV 3.3.0 文章目录VS2017配置YOLOv3前言一、下载二、使用步骤1.引入库2.读入数据总结 前言 最近在做毕设,需要用到YOLOv3算法来训练,属于小白从头学起,就在这里记录一下在配置过程中所遇到的问题吧。 一、下载 IDE:VS2017社区版: 二、使用步骤 1.引入库 代码如下

skkylz的博客 5411

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

记一次调试YOLOv5+DeepSort车辆跟踪项目的经过

摘要:学习别人的开源项目是日常的一项必备技能,本文通过一个车辆跟踪(YOLOv5+DeepSort)的例子介绍如何配置和调试GitHub上的开源代码。以第一人称的视角给出本人调试代码的过程,包括项目readme的阅读、python环境配置、代码调试运行等,详细的过程已录制在视频中。

思绪无限的博客 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

yolov5运行中出现的错误

RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory

m0_53634289的博客 1519

【yolov5+deepsort运行和训练自数据集(训练v5部分)】

本人在读科研狗,因为研究的是目标跟踪测距等等,所以自己开始百度摸索,中间会遇到很多问题,走很多弯路,往往一个很简单就可以解决的东西都快要把百度用烂,我承认我太菜。本文是留给自己看的,相当于记录心路历程,以便下次再有问题的话自己来翻翻找找吧。 下载好匹配的deeosort和yolov5代码 1.首先在https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch下载YOLOv5+Deepsort,此处https://github.com...

alittle_trouble的博客 9940

Yolov5环境配置

叠个甲,本文是作者在学习过程中做的笔记,更多的是用来复习使用,但也希望可以帮助到更多的朋友配置环境时候可以方便一点,有些过程讲得有误或者不清楚还望各位看官见谅。

2301_80546711的博客 868

【jetson nano】jetson nano环境配置+yolov5部署+tensorRT加速模型

Jetson nano配置并部署自己的Yolov5模型(TensorRT加速)全过程

weixin_46007139的博客 2万+

Jetson nano jetpack4.5安装torch1.8.0 yolov5(遇到到报错和解决办法)

jetson nano配置torch=1.9.0,torchvision =0.9.0和yolov5的过程,遇到的报错以及解决方法

Nekonlaa的博客 7208

yolov5--从Github下载到运行遇到的错误集锦【pycocotools报错+Can‘t get attribute SPPF+in _next_assert img0 is not None】

yolo算法 ​ YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。现在YOLO已经发展到v6版本,不过新版本也是在原有版本基础上不断改进演化的。这次主要是克隆Github上yolov5版本的程序,然后再pycharm上运行。 ​ 首先,是从github上下载程序。【注意此次下载的是V5.0版本】 ​ 下载成功后就是漫长且易秃的环境配置之路????????????首先我们还需要一些准备工作——安装pytorch【

秃头小苏的博客 4046
上一篇: c++详解之右值引用
下一篇: c++数组
五百五。
博客等级 码龄7年 249粉丝 177原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五百五。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值