yolov9训练自己的数据集+验证+报错修改

目录

说明

1、下载代码+安装新的python环境

2、准备数据

3、修改代码

报错及解决


说明

本文参考该博主的文章,在已经有数据的情况,进行简单总结。感谢大佬!需要详细版见原文链接如下:YOLOV9保姆级教程-CSDN博客

1、下载代码+安装新的python环境

代码下载:GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

pycharm打开下载的yolov9的文件,点击Terminal。

先输入: conda deactivate  为了退出(base)

然后新建环境:conda create -n yolov9(环境名称) python=3.8

进入环境:conda activate yolov9

安装所需:pip install -r requirements.txt

此时我们安装的只是基础的CPU状态,如果需要使用GPU训练,需要在pytorch中找到适合自己的cuda版本的torch口令然后下载。(我用的原博主的,因为我自己选的有问题hhh)

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia

找到适合自己的cuda版本方法:①打开NVIDIA控制面板:

一般按照上面操作,环境就配好了。可以在train.py里面调试一下使用torch.cuda.is_available()来判断是否GPU成功可用。

2、准备数据

新建datasets文件,包含images和labels。

新建my_data.yaml,内容如下:path改为自己的datasets位置

path: D:\documents\yolov9-main\datasets  # dataset root dir
train: images/train  # train images (relative to 'path') 128 images
val: images/val # val images (relative to 'path') 128 images
test: images/test # test images (optional)

nc: 2

# Classes
names:  
  0: xxx
  1: xxx

images和labels分别放置准备好训练集验证集测试集,labels是txt格式的数据

3、修改代码

–weights : 此处更改为下载的yolov9-c.pt的绝对路径
–cfg : 此处更改为yolov9-c.yaml的绝对路径
–data : 此处更改为自己新建的data.yaml的绝对路径 
–hyp : 此处更改为data/hyps/hyp.scratch-high.yaml
原本是data/hyps/hyp.scratch-low.yaml但该文件内并未找到,,,猜测为YOLOv9作者调试过程中的小疏忽版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/heart_warmonger/article/details/136249119

--batch-size 2 (按照自己实际情况修改,我一个GPU,实事证明4不行,2可以)
--epochs 200(按照自己实际情况修改,一般200比较合适)
--device 0 (按照自己实际情况修改,我的是一个GPU)(不用GPU就不填)

左上角点击文件,点击设置,设置环境为新建的环境yolov9

最终设置结果:

在train.py中右键开始训练即可。

4、报错及解决

报错1、和原博主一样,以下为解决方案:(没有完全解决,快训练完的时候还是有,但不影响)

报错2、ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant' (D:\Yan_jiu\Anaconda3\envs\yolov9\lib\site-packages\charset_normalizer\constant.py)

安装版本不兼容。解决:pip install --user --upgrade charset_normalizer

成功训练:

------------------更新--------------------

哎哎哎!没用GPU训练一个epoch要四个多小时

使用torch.cuda.is_available()判断发现问题,重新建环境,用上GPU就快了

5、验证

python val.py --data=datasets\my_data.yaml --weights=runs\train\exp12\weights\best.pt --batch-size=2 --device=0

报错3:\yolov9-main\utils\general.py", line 905, in non_max_suppression device = prediction.device AttributeError: 'list' object has no attribute 'device'

解决:找到\yolov9-main\utils\general.py,第903行改为:prediction = prediction[0][0]

  • 10
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值