使用yolov8训练数据集及使用中遇到的问题_yolov8的ultralytics models文件夹下没有v8这个文件夹
2.yolov8模型
下载链接,我下了yolov8s.py,放在该路径E:\nfshare\yolov8\ultralytics\weights
ps:model文件类型可以是yaml,也可以是pt

3.修改yolov8.yaml文件
E:\nfshare\yolov8\ultralytics\cfg\models\v8\yolov8.yaml,就改类别数
nc: 9 # number of classes
4.新建data文件
E:\nfshare\yolov8\ultralytics\cfg\datasets\hr.yaml,这些和yolov5一样

5.修改default.yaml文件
E:\nfshare\yolov8\ultralytics\cfg\default.yaml ,就动了以下几个参数
model: weights/yolov8s.pt # (str, optional) path to model file, i.e. yolov8n.pt, yolov8n.yaml
data: cfg/datasets/hr.yaml # (str, optional) path to data file, i.e. coco128.yaml
epochs: 1 # (int) number of epochs to train for
amp: False
batch: 8
运行代码 yolo cfg=cfg/default.yaml
6.训练yolov8模型(train)
1.新建.py文件训练模型
在路径下新建python脚本文件\yolov8\ultralytics\demo.py,就像运行yolov5的模型一样,运行该脚本文件。
下面这些参数要怎么设置我还没懂。
#import sys
#sys.path.append("/home/yyt/nfshare/yolov8/")
from ultralytics import YOLO
# Create a new YOLO model from scratch
#model = YOLO('/home/yyt/nfshare/yolov8/ultralytics/cfg/models/v8/yolov8.yaml')
# Load a pretrained YOLO model (recommended for training)
model = YOLO('/home/yyt/nfshare/yolov8/ultralytics/weights/yolov8s.pt')
# Train the model using the 'coco128.yaml' dataset for 3 epochs
results = model.train(data='/home/yyt/nfshare/yolov8/ultralytics/cfg/datasets/hr.yaml',amp=False,epochs=2,batch=8,val=True)
# Evaluate the model's performance on the validation set
#results = model.val(data='/home/yyt/nfshare/yolov8/ultralytics/cfg/datasets/hr.yaml',amp=False,epochs=2,batch=8)
success = model.export(format='onnx')
2.运行default.yaml文件训练模型
直接输入yolo cfg=/文件的路径/default.yaml
3.命令运行直接输:
yolo task=detect mode=train model=/yolov8/ultralytics/cfg/runs/detect/train6//weights/last.pt(模型位置,模型可以是.yaml形式或者.pt) data=/yolov8/ultralytics/cfg/datasets/hr.yaml(数据集.yaml文件位置) epochs=150 save=True resume=True (后面的都是参数,具体写什么看default.yaml里面你需要改什么)
7.测试训练后的模型(test)
1.运行default.yaml
修改default.yaml,运行代码和train一样
修改mode: val,model:/runs/detect/train6/weights/last.pt ,split: test

2.代码运行
这个方法能显示test每张图片检测的结果
yolo predict model= '/home/yyt/nfshare/yolov8/ultralytics/cfg/runs/detect/train6/weights/last.pt'(模型路径) source= '/home/yyt/nfshare/zijianshujuji/image/test'(图片文件路径)
问题
1.box_loss cls_loss dfl_loss全显示为nan,map全为0

显卡问题,batch值太大
解决:在default.yaml中,改小batch值 ,amp改为False
2.val的box_loss、cls_loss、dfl_loss为0,train不为0

排查问题:
1.validator.py文件
为了解决问题1 result全显示为0,我删去了validator中的如下代码,恢复看看能不能跑通val
self.args.half = self.device.type != 'cpu' # force FP16 val during training

失败
2.amp
amp改为ture,好的这个不能改,改了又都是nan
不是我瞎改的问题
尝试:
1.在trainer.py里面搜索half关键字,把所有有.half()变为.float()
#'model': deepcopy(de_parallel(self.model)).half(),
'model': deepcopy(de_parallel(self.model)).float(),
#'ema': deepcopy(self.ema.ema).half(),
'ema': deepcopy(self.ema.ema).float(),

无效果
2.继续修改val.py,修改batch[‘img’].half()改为batch[‘img’].float()
#batch['img'] = (batch['img'].half() if self.args.half else batch['img'].float()) / 255
batch['img'] = (batch['img'].float()) / 255

3.继续修改validator.py


不行
4.改小batch_size
batch_size=4
不行
解决:更新环境和其他安装包,pip install -r requirement.txt
3.运行default.yaml,报错 ModuleNotFoundError: No module named ‘ultralytics’
(yolov5) root@xxdell:/home/yyt/nfshare/yolov8/ultralytics# yolo cfg=/home/yyt/nfshare/yolov8/ultralytics/cfg/default.yaml
Traceback (most recent call last):
File "/home/nephilim/environment/anaconda3/envs/yolov5/bin/yolo", line 5, in <module>
from ultralytics.cfg import entrypoint
ModuleNotFoundError: No module named 'ultralytics'
**解决方法:**在/home/xx/environment/anaconda3/envs/yolov5/bin/yolo文件中添加路径
sys.path.append("/home/yyt/nfshare/yolov8/")

再次运行,解决
4.训练结果runs文件保存路径改变
原本的训练结果保存在/home/yyt/nfshare/yolov8/runs 里面,即我的共享文件夹和yolov8存在的项目文件了,现在被更改了也不知道是怎么回事,前两次训练结果就没有出现。现在的文件夹路径在虚拟机的环境路径里/home/xx/environment/anaconda3/envs/yolov5/bin/runs/detect
感觉使用的不是yolov8,而是yolov5
(base) yyt@dell:/home/xx/environment/anaconda3/envs/yolov5/bin/runs/detect$ stat train
File: train
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 824h/2084d Inode: 16883842 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2023-08-21 15:02:27.587039861 +0800
Modify: 2023-08-21 14:59:15.937472731 +0800
Change: 2023-08-21 14:59:15.937472731 +0800
分析:
这几次运行的都是配置default.yaml,运行python文件,正常显示。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。






既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
2296f86381401c05e862fe4e9.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

更多推荐
所有评论(0)