汇总利用YOLO8训练遇到的报错和解决方案(包含训练过程中验证阶段报错、精度报错、损失为Nan、不打印GFLOPs)

这篇具有很好参考价值的文章主要介绍了汇总利用YOLO8训练遇到的报错和解决方案(包含训练过程中验证阶段报错、精度报错、损失为Nan、不打印GFLOPs)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、本文介绍

本文为专栏内读者和我个人在训练YOLOv8时遇到的各种错误解决方案,你遇到的问题本文基本上都能够解决,同时本文的内容为持续更新,定期汇总大家遇到的问题已经一些常见的问题答案,目前包含的问题已经解决方法汇总如下图所示。

汇总利用YOLO8训练遇到的报错和解决方案(包含训练过程中验证阶段报错、精度报错、损失为Nan、不打印GFLOPs),YOLO,深度学习,人工智能,python,目标检测,pytorch,计算机视觉

专栏目录:YOLOv8改进有效系列目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

专栏回顾:YOLOv8改进系列专栏——本专栏持续复习各种顶会内容——科研必备 

目录

一、本文介绍

二、 报错问题 

(1)训练过程中loss出现Nan值.

(2)多卡训练问题,修改模型以后不能支持多卡训练可以尝试下面的两行命令行操作,两个是不同的操作,是代表不同的版本现尝试第一个不行用第二个

(3) 针对运行过程中的一些报错解决

(4) 针对yaml文件中的nc修改

(5) 针对环境的问题

(6) 训练过程中不打印GFLOpS

(7) mmcv安装的解决方法

三、全文总结 


二、 报错问题 

# 以下为两个重要库的版本,大家可以对应下载,使用教程我会更新,时间还没来得及大家可以先看视频使用。

项目环境:

python == 3.9.7

pytorch == 1.12.1

timm == 0.9.12

mmcv-full == 1.6.2

 


(1)训练过程中loss出现Nan值.

可以尝试关闭AMP混合精度训练,如何关闭amp呢找到如下文件'ultralytics/cfg/default.yaml',其中有一个参数是

amp: False  # (bool) Automatic Mixed Precision (AMP) training, choices=[True, False], True runs AMP check

我们将其设置为False即可,默认时为True。

.

(2)多卡训练问题,修改模型以后不能支持多卡训练可以尝试下面的两行命令行操作,两个是不同的操作,是代表不同的版本现尝试第一个不行用第二个

    python -m torch.distributed.run --nproc_per_node 2 train.py

    python -m torch.distributed.launch --nproc_per_node 2 train.py


(3) 针对运行过程中的一些报错解决

    1.如果训练的过程中验证报错了(主要是一些形状不匹配的错误这是因为验证集的一些特殊图片导致)

就是有这种训练第一个epochs完成后开始验证的时候报错,下面的方法基本百分之九十都能够解决。

汇总利用YOLO8训练遇到的报错和解决方案(包含训练过程中验证阶段报错、精度报错、损失为Nan、不打印GFLOPs),YOLO,深度学习,人工智能,python,目标检测,pytorch,计算机视觉

    找到ultralytics/models/yolo/detect/train.py的DetectionTrainer class中的build_dataset函数中的rect=mode == 'val'改为rect=False

    2.推理的时候运行detect.py文件报了形状不匹配的错误

    找到ultralytics/engine/predictor.py找到函数def pre_transform(self, im),在LetterBox中的auto改为False

    3.训练的过程中报错类型不匹配的问题

    找到'ultralytics/engine/validator.py'文件找到 'class BaseValidator:' 然后在其'__call__'中

    self.args.half = self.device.type != 'cpu'  # force FP16 val during training的一行代码下面加上self.args.half = False


(4) 针对yaml文件中的nc修改

    不用修改,模型会自动根据你数据集的配置文件获取。

    这也是模型打印两次的区别,第一次打印出来的就是你选择模型的yaml文件结构,第二次打印的就是替换了你数据集的yaml文件,模型使用的是第二种。


(5) 针对环境的问题

    环境的问题我实在解决不过来,所以大家可以自行在网上搜索解决方案。
    这里是我早期写的一个环境搭建的教程,大家可以参考。
    https://snu77.blog.csdn.net/article/details/128027977


(6) 训练过程中不打印GFLOpS

计算的GFLOPs计算异常不打印,所以需要额外修改一处, 我们找到如下文件'ultralytics/utils/torch_utils.py'文件内有如下的代码按照如下的图片进行修改,大家看好函数就行,其中红框的640可能和你的不一样, 然后用我给的代码替换掉整个代码即可。

汇总利用YOLO8训练遇到的报错和解决方案(包含训练过程中验证阶段报错、精度报错、损失为Nan、不打印GFLOPs),YOLO,深度学习,人工智能,python,目标检测,pytorch,计算机视觉

def get_flops(model, imgsz=640):
    """Return a YOLO model's FLOPs."""
    try:
        model = de_parallel(model)
        p = next(model.parameters())
        # stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32  # max stride
        stride = 640
        im = torch.empty((1, 3, stride, stride), device=p.device)  # input image in BCHW format
        flops = thop.profile(deepcopy(model), inputs=[im], verbose=False)[0] / 1E9 * 2 if thop else 0  # stride GFLOPs
        imgsz = imgsz if isinstance(imgsz, list) else [imgsz, imgsz]  # expand if int/float
        return flops * imgsz[0] / stride * imgsz[1] / stride  # 640x640 GFLOPs
    except Exception:
        return 0

 


(7) mmcv安装的解决方法

有的读者mmcv-full会安装失败是因为自身系统的编译工具有问题,也有可能是环境之间安装的有冲突 推荐大家离线安装的形式,下面的地址中大家可以找找自己的版本,下载到本地进行安装。 https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html https://download.openmmlab.com/mmcv/dist/index.html 

三、全文总结 

到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv8改进有效涨点专栏,本专栏目前为新开的平均质量分98分,后期我会根据各种最新的前沿顶会进行论文复现,也会对一些老的改进机制进行补充,目前本专栏免费阅读(暂时,大家尽早关注不迷路~),如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

专栏回顾YOLOv8改进系列专栏——本专栏持续复习各种顶会内容——科研必备

这里会持续更新群内的一些报错的解决方法,同时希望大家对于我的CSDN博客能够看完之后顺手点赞收藏和评论支持一下,这样我也会更努力的给大家收集更多的改进机制

专栏如果销量好后面我会考虑出模型剪枝和蒸馏,同时人数多了我更新起来也更有动力,在此真诚的感谢大家。文章来源地址https://www.toymoban.com/news/detail-836068.html

到了这里,关于汇总利用YOLO8训练遇到的报错和解决方案(包含训练过程中验证阶段报错、精度报错、损失为Nan、不打印GFLOPs)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • linux安装nginx遇到的报错

    1、Linux如何修改只读文件(以设置自动连网为例) vim /etc/sysconfig/network-scripts/ifcfg-ens33 然后提示 E45:已设定选项“readonly”(请加!强制执行)  如果需要强制修改,可以使用,注意空格 :w !sudo tee % 2、安装报错 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached host

    2024年02月15日
    浏览(24)
  • python 深度学习 解决遇到的报错问题

    目录 一、解决报错ModuleNotFoundError: No module named ‘tensorflow.examples 二、解决报错ModuleNotFoundError: No module named ‘tensorflow.contrib‘ 三、安装onnx报错assert CMAKE, ‘Could not find “cmake“ executable!‘ 四、ImportError: cannot import name \\\'builder\\\' from \\\'google.protobuf.internal\\\' 五、解决ModuleNotFoundError: N

    2024年02月08日
    浏览(20)
  • python 深度学习 解决遇到的报错问题3

    目录 一、AttributeError: The vocab attribute was removed from KeyedVector in Gensim 4.0.0. 二、ImportError: cannot import name \\\'logsumexp\\\' 三、FutureWarning: Passing (type, 1) or \\\'1type\\\' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / \\\'(1,)type\\\' 四、ImportError: numpy.core.multiarray failed

    2024年02月10日
    浏览(17)
  • python 深度学习 解决遇到的报错问题5

    目录 一、conda安装shapefile失败 二、conda安装osmnx失败:To search for alternate channels that may provide the conda package you\\\'relooking for, navigate to 三、ERROR: Could not build wheels for llvmlite, which is required to install pyproject.toml-based projects 四、bash: pip: command not found 解决报错:ERROR: Could not find a version

    2024年02月04日
    浏览(22)
  • python 深度学习 解决遇到的报错问题8

    本篇继python 深度学习 解决遇到的报错问题7-CSDN博客 目录 一、OSError: [WinError 127] 找不到指定的程序。 Error loading \\\"D:my_ruanjianconda-myenvsdeeplearninglibsite-packagestorchlibcaffe2_detectron_ops.dll\\\" or one of its dependencies. 二、proj.db contains DATABASE.LAYOUT.VERSION.MINOR = 0 whereas a number = 2 is expecte

    2024年02月05日
    浏览(22)
  • python 深度学习 解决遇到的报错问题4

    目录 一、DLL load failed while importing _imaging: 找不到指定的模块 二、Cartopy安装失败 三、simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 四、raise IndexError(\\\"single positional indexer is out-of-bounds\\\") 五、TypeError: \\\'_AxesStack\\\' object is not callable 问题 : 原因 :查看报错信息发现是导

    2024年02月10日
    浏览(23)
  • python 深度学习 解决遇到的报错问题9

    本篇继python 深度学习 解决遇到的报错问题8-CSDN博客 目录 一、can only concatenate str (not \\\"int\\\") to str 二、can\\\'t convert np.ndarray of type numpy.object_. The only supported types are: float64, float32, float16, complex64, complex128, int64, int32, int16, int8, uint8, and bool. 三、module \\\'d2l.torch\\\' has no attribute \\\'train_ch3\\\' 四、

    2024年02月05日
    浏览(17)
  • MySQL Shell备份恢复可能会遇到的报错

    使用MySQL Shell进行备份和恢复的方法参见MySQL Shell 8.0的Dump Utility备份与恢复。 MySQL Error 1226总是发生在备份/恢复开始的时候。 🕷报错信息: 🐦报错原因: 使用MySQL Shell备份或恢复的并发线程数 threads 大小超过了当前备份用户的最大并发连接数 max_user_connections 。 🐟解决办法

    2023年04月12日
    浏览(58)
  • 在安装和配置DVWA渗透测试环境遇到的报错问题

    前面的安装我参考的这个博主:渗透测试漏洞平台DVWA环境安装搭建及初级SQL注入-CSDN博客 这里提示一下,我使用的是PHPstudy集成环境(mysql,Apache),博主提到的php.in文件  位置在设置里面,点击php.ini 其他的错误按照博主的改。 解决方法参照博主:Dvwa遇到 Could not connect to the d

    2024年02月08日
    浏览(29)
  • 【深度学习之YOLO8】环境部署

    Ultralytics YOLOv8 是一款前沿、最先进(SOTA)的模型,基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。 Python SDK Download Ultralytics YOL

    2024年02月16日
    浏览(71)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包