YOLOv9【训练+训练过程中的报错处理】

本文介绍了YOLOv9的目标检测模型训练过程,包括论文简介、训练前的环境搭建和数据集准备。在训练过程中,作者遇到了文件定位错误和依赖包版本不匹配的问题,并给出了详细的解决办法,如修改配置文件、降低依赖包版本等。文章还分享了训练时可能遇到的显存不足问题及解决策略,并提到了模型大小对训练的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

科技发展的速度真的是很快呀!YOLOv8还没有捂热,YOLOv9就出来了,先一睹为快!

论文:https://arxiv.org/pdf/2402.13616.pdf (YOLOv9: Learning What You Want to Learn
Using Programmable Gradient Information

代码 Github:https://github.com/WongKinYiu/yolov9

资源:https://download.youkuaiyun.com/download/A__MP/88908327

一 :【论文简貌】

1.1 指标/参数比较图MS COCO 数据集
在这里插入图片描述
1.2 性能对比表
在这里插入图片描述
其他的细节,可以去论文中看看,感觉改的东西还是挺多的,下面直接进行训练部分。

二:【YOLOv9训练】

写在前面:YOLOv9的训练文件(train.py)设计与YOLOv5是非常相似的,所以如果你使用过YOLOv5的话,操作YOLOv9的训练还是很简单的。

【2.1 训练前准备】

2.1.1 虚拟环境搭建

关于这部分操作前面我写过一篇文章,可以看看,这次调试YOLOv9的时候,我顺着走了一遍,问题不大,只不过YOLOv8变YOLOv9,链接如下。

搭建虚拟环境:https://blog.youkuaiyun.com/A__MP/article/details/136331757

2.1.2:数据集准备

我测试过了,数据集的文件目录与YOLOv8一致,是可以进行训练的。也就是说,如果你前一段时间在玩YOLOv8,你完全可以将你的数据集“移植过来”,只需要改变一下你的data.yaml中的路径。

当然,你也可以使用YOLOv5的数据集文件目录格式,也是可以行得通的。这么说吧,这两种是互通的,在YOLOv8上我试过了,不过我建议使用YOLOv8的格式,比较规整和舒服。

**数据集准备:**https://blog.youkuaiyun.com/A__MP/article/details/136411203

(注意:因为这篇重点讲训练过程,所以前两个过程分享了两个链接,麻烦了。)

【2.2:训练】准备好就可以开始训练了!!

2.2.1 打开项目,并安装依赖包

首先,利用Pycharm打开下载好的YOLOv9项目。看右下角所处的虚拟环境是否是自己设置的,如果不是,请修改回来。 https://blog.youkuaiyun.com/A__MP/article/details/136357068 这个链接中的前两步。

注意:使用pip install -r requirements.txt 下载依赖包的时候有时候会下载的很慢(十几KB/s),这个时候可以使用镜像源来辅助下载。

常用的镜像源有以下几种

<think>嗯,用户的问题是关于YOLOv5在训练自定义数据集时遇到的错误解决方案。首先,我需要回忆一下常见的YOLOv5训练错误,并结合提供的引用内容来整理解决方案。 根据用户提供的引用,我看到有几个关键点。比如引用[2]提到修改datasets.py的num_workers为0,这可能解决多线程问题。引用[5]提到设备设置为CPU或GPU的问题,用户可能需要检查是否正确配置了CUDA。此外,数据集的路径和格式是否正确也是一个常见问题,比如YAML文件的配置是否正确,图片和标签是否对应,以及标签的格式是否符合要求。 然后,用户可能遇到的具体错误可能包括数据加载错误、CUDA内存不足、损失值为NaN、评估阶段出错等。针对这些问题,我需要逐步列出检查步骤,比如检查数据集路径、调整num_workers、验证CUDA可用性、检查标签格式等。此外,引用[3]提到使用Albumentations库进行数据增强,可能需要检查数据增强部分的代码是否兼容。 还需要考虑版本兼容性问题,比如YOLOv5的不同版本可能有不同的配置要求。用户可能需要升级或降级相关依赖库,如torch和torchvision。同时,提供验证和测试阶段的命令,如引用[4]中的评估命令,帮助用户确认模型是否正确训练。 最后,生成的相关问题需要涵盖数据集准备、配置调整、参数优化、数据增强和模型评估,这样用户可以根据需要进一步探索解决方案。</think>### YOLOv5自定义数据集训练常见错误及解决方案 以下是训练YOLOv5时可能遇到的典型错误及其解决方法,结合引用内容和实践经验整理: 1. **数据集加载失败** - **检查YAML文件路径**:确保`data.yaml`中`train`和`val`路径使用**绝对路径**,格式例如:`D:/datasets/images/train`,避免使用相对路径[^2] - **验证文件对应关系**:每个图片需有同名`.txt`标注文件,标注格式为`class_id x_center y_center width height`,数值需归一化到0-1范围[^3] - **强制指定num_workers=0**:在`datasets.py`第119行修改`num_workers=0`,可解决多线程加载问题[^2] 2. **CUDA内存不足** ```python # 修改train.py启动参数 parser.add_argument(&#39;--device&#39;, default=&#39;0&#39;, help=&#39;cuda device, i.e. 0 or cpu&#39;) ``` - 尝试减小`--batch-size`(默认16可改为8或4) - 添加`--cache`参数启用数据集缓存[^5] 3. **损失值异常(NaN)** - 检查标签是否包含**越界坐标值**(必须小于1) - 验证数据增强参数是否过激,在`hyp.scratch.yaml`中降低`hsv_h`、`hsv_s`等参数值 - 使用`--weights yolov5s.pt`加载预训练模型进行迁移学习 4. **评估阶段报错** ```bash yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=data.yaml device=0 ``` - 确认验证集路径在`data.yaml`中正确配置 - 检查模型输出维度是否与类别数匹配[^4] 5. **版本兼容性问题** - 推荐使用**Python 3.8+**和**torch 1.7+**环境 - 更新YOLOv5到最新版本: ```bash git clone https://github.com/ultralytics/yolov5 pip install -r requirements.txt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小小的学徒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值