【yolov8中如何用改进后的模型进行训练】

使用原yolov8模型训练模型代码如下:

import time
from ultralytics import YOLO


# yolov8n模型训练:训练模型的数据为'A_my_data.yaml',轮数为100,图片大小为640,设备为本地的GPU显卡,关闭多线程的加载,图像加载的批次大小为4,开启图片缓存
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
# results = model.train(data='A_my_data.yaml', epochs=100, imgsz=640, device=[0,], workers=0, batch=4, cache=True)  # 开始训练
results = model.train(data='A_interact_data.yaml', epochs=100, imgsz=640, device=[0,], workers=0, batch=4, cache=True)  # 开始训练
time.sleep(10) # 睡眠10s,主要是用于服务器多次训练的过程中使用

想用修改之后的模型来训练,以yolov8-cls.yaml为例,只添加了model = YOLO("yolov8-cls.yaml") 这一行代码(尝试过去掉yolov8n.pt预训练权重文件运行不通过),修改后训练文件如下:

import time
from ultralytics import YOLO

model = YOLO("yolov8-cls.yaml")

# If a pre-trained model is available, use it instead
# model = YOLO("model.pt")

# Display model information
model.info()
# yolov8n模型训练:训练模型的数据为'A_my_data.yaml',轮数为100,图片大小为640,设备为本地的GPU显卡,关闭多线程的加载,图像加载的批次大小为4,开启图片缓存
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
# results = model.train(data='A_my_data.yaml', epochs=100, imgsz=640, device=[0,], workers=0, batch=4, cache=True)  # 开始训练
results = model.train(data='A_interact_data.yaml', epochs=100, imgsz=640, device=[0,], workers=0, batch=4, cache=True)  # 开始训练
time.sleep(10) # 睡眠10s,主要是用于服务器多次训练的过程中使用

运行失败,报错信息如下:

Traceback (most recent call last):
File "D:/pyx/YOLO/yolov8-42/42_demo/start_other_train.py", line 9, in <module>
results = model.train(data='A_interact_data.yaml', epochs=100, imgsz=640, device=[0,], workers=0, batch=4, cache=True) # 开始训练
File "D:\pyx\YOLO\yolov8-42\ultralytics\engine\model.py", line 805, in train
self.trainer = (trainer or self._smart_load("trainer"))(overrides=args, _callbacks=self.callbacks)
File "D:\pyx\YOLO\yolov8-42\ultralytics\models\yolo\classify\train.py", line 38, in init
super().init(cfg, overrides, _callbacks)
File "D:\pyx\YOLO\yolov8-42\ultralytics\engine\trainer.py", line 134, in init
self.trainset, self.testset = self.get_dataset()
File "D:\pyx\YOLO\yolov8-42\ultralytics\engine\trainer.py", line 535, in get_dataset
raise RuntimeError(emojis(f"Dataset '{clean_url(self.args.data)}' error ❌ {e}")) from e
RuntimeError: Dataset 'A_interact_data.yaml' error Download failure for https://ultralytics.com/assets/A_interact_data.yaml.zip. Retry limit reached.

仔细看了报错信息之后,发现yolov8-cls这个模型其实是用于目标分类的,需要的数据类型yaml文件和目标检测模型的不一样,yaml文件格式应该如下所示:

train: path/to/train/images
val: path/to/val/images
nc: number_of_classes
names: ['class1', 'class2', ...]

所以我们再换一个模型进行测试,修改后的训练文件代码如下所示:
在这里插入图片描述
运行成功!

YOLO(You Only Look Once)是一个著名的实时目标检测算法,YOLOv8YOLOv8n 和 YOLOv8s 是YOLO系列的后续版本。它们在保持高效实时检测的同时,针对模型性能和准确度进行了优化。 YOLOv8n 和 YOLOv8s 主要改进了以下几个方面: 1. **模型结构**:这些版本通常采用更深或更复杂的网络结构,例如增加更多的卷积层或引入更多的注意力机制,以提高检测精度。 2. **数据增强**:对训练数据进行更丰富的预处理,如随机裁剪、旋转、翻转等,以提高模型对不同角度、尺度物体的识别能力。 3. **多尺度训练**:为了捕获不同大小的目标,模型可能会训练在多个尺度上,这有助于提高检测的全面性。 4. **模型大小与速度的平衡**:YOLOv8s可能通过模型金字塔、剪枝技术等手段,提供不同版本(如S、N)来满足不同应用场景的需求,比如对资源有限设备的优化。 5. **锚框和置信度阈值调整**:优化了锚框的选择和预测结果的置信度阈值,以改善召回率和精确度之间的权衡。 6. **训练策略**:可能采用了更先进的训练技术,如迁移学习、自监督学习或者联合训练,来进一步提升性能。 7. **硬件优化**:针对特定硬件平台进行了优化,比如针对GPU或CPU的计算效率进行了调整。 对于是否通用,取决于具体的应用场景。YOLOv8n和YOLOv8s在各种视觉任务表现出色,包括交通监控、自动驾驶、工业检测等领域,但对于特定领域的定制需求,可能需要微调或增加领域知识的标注数据进行训练
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值