yolov5配置错误记录

这篇具有很好参考价值的文章主要介绍了yolov5配置错误记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

yolov5配置错误记录

 这里是直接没有找到数据集,说明是路径错误。经过设置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配置错误记录

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

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

yolov5配置错误记录

 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的博客-CSDN博客

Pytorch计算Loss值为Nan的一种情况【exp计算溢出,利用softmax计算的冗余性解决】_futurewarning: non-finite norm encountered in torc_PuJiang-的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-437057.html

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

到了这里,关于yolov5配置错误记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • yolov5 报错解决记录

     Failed to initialize: Bad git executable. The git executable must be specified in one of the following ways:     - be included in your $PATH     - be set via $GIT_PYTHON_GIT_EXECUTABLE     - explicitly set via git.refresh() All git commands will error until this is rectified. This initial warning can be silenced or aggravated in the future by setting

    2024年02月03日
    浏览(38)
  • 【YOLOv5问题记录】thop库的安装

    最近开始学习YOLOv5,踩了不少坑,总结一下问题。 配置环境按照这篇教程来的:Yolov5的配置+训练(超级详细!!!)_小学生玩编程的博客-CSDN博客 训练数据集跟着炮哥的这篇:目标检测---教你利用yolov5训练自己的目标检测模型_yolov5如何训练自己的模型_炮哥带你学的博客-

    2024年02月08日
    浏览(33)
  • 记录使用yolov5进行旋转目标的检测

    由于实习公司需要使用到旋转目标的检测,所以这几天学习了相关知识,并找了许多资料,饶了许多的弯路。下面记录下项目的整个实现过程。 我参考的是以下几位博主: DOTAv2遥感图像旋转目标检测竞赛经验分享(Swin Transformer + Anchor free/based方案) - 知乎 小鸡炖技术的个人

    2024年02月02日
    浏览(43)
  • 新建微信小程序Ts模版构建npm错误 ,没有找到可以构建的 NPM 包,NPM packages not found。

    message : 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 miniprogramRoot 目录内,或配置 project.config.json 的 packNpmManually 和 packNpmRelationList 进行构建 已按初始化 npm ,但是构建提示 npm 包找不到 1、首先 在终端中 确实是先初始化过了 2、如果已经初始化以后,项目根目

    2024年02月11日
    浏览(41)
  • 学习记录09:快速上手简单改进yolov5目标检测网络

      这篇博客主要是简单介绍一下如何改进yolov5,但是不会讲得太深,因为我也只是运用了几个月,并没有细读每一段代码,我只是为了改而改,不会深究他的代码逻辑,python代码他确实写的很优雅,但是我不打算学习这种优雅,能毕业就行,以后又不从事python工作,也不继

    2023年04月21日
    浏览(47)
  • 【问题记录】树莓派+OpenCV+YOLOv5目标检测(Pytorch框架)

     -【学习资料】 子豪兄的零基础树莓派教程 https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi/blob/master/%E7%AC%AC2%E8%AE%B2%EF%BC%9A%E6%A0%91%E8%8E%93%E6%B4%BE%E6%96%B0%E6%89%8B%E6%97%A0%E7%97%9B%E5%BC%80%E6%9C%BA%E6%8C%87%E5%8D%97.md#%E7%83%A7%E5%BD%95%E9%95%9C%E5%83%8F 第2讲:树莓派新手无痛开机指南【子豪兄的树莓派

    2024年02月02日
    浏览(56)
  • 跑通官方的yolov7-tiny实验记录(yolov7-tiny可作为yolov5s的对比实验网络)

    官方YOLOv7 项目地址:https://github.com/WongKinYiu/yolov7 如果想设置早停机制,可以参考这个链接:yolov7自动停止(设置patience)且输出最优模型时的PR图(test best.py) 学习 train.py 中的参数含义,可参考手把手调参最新 YOLOv7 模型 训练部分 - 最新版本(二) 学习 detect.py 中的参数含

    2023年04月18日
    浏览(45)
  • 在CPU上进行完整版yolov5项目跟练记录

    本节内容参考来源:1、2、3 1. 目标检测任务说明 目标检测指的是:输入图像或视频,要从图像中获取需要的物体类型以及位置等信息。 主要的检测性能指标如下图所示: 1.1 基础检测 精度 指标: 1.2 基础检测 速度 指标: 2. 目标检测与yolov5发展历程 2.1目标检测发展史 2.2

    2024年02月06日
    浏览(48)
  • YOLOv5运行错误:ImportError: Failed to initialize: Bad git executable.

    问题描述:我们在跑YOLOv5官方数据集时,出现这个错误,ImportError: Failed to initialize: Bad git executable. 具体错误如下 具体原因:未知 解决办法: 在train.py文件中的import os后面加上 具体位置

    2024年02月11日
    浏览(70)
  • Yolov5-模型配置文件(yolov5l.yaml)讲解

    配置文件:github.com/ultralytics/ 这部分比较简单,以下是yolov5l的配置文件 nc:类别数,你的类别有多少就填写多少。从1开始算起,不是0-14这样算。 depth_multiple:控制模型的深度。 width_multiple:控制卷积核的个数。 yolov5提供了s、m、l、x四种,所有的yaml文件都设置差不多,只有

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包