当前位置:   article > 正文

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

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位置

  1. path: D:\documents\yolov9-main\datasets # dataset root dir
  2. train: images/train # train images (relative to 'path') 128 images
  3. val: images/val # val images (relative to 'path') 128 images
  4. test: images/test # test images (optional)
  5. nc: 2
  6. # Classes
  7. names:
  8. 0: xxx
  9. 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]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/312763
推荐阅读
相关标签
  

闽ICP备14008679号