Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集

这篇具有很好参考价值的文章主要介绍了Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

windows系统下YoLov8改进模型训练自己的数据集

yolov8 github下载

1、此时确保自己的数据集格式是yolo 格式的(不会的去搜教程转下格式)。
你的自制数据集文件夹摆放

Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集

主目录文件夹摆放

Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集

自制数据集data.yaml文件路径模板
path: ../datasets/VOCdevkit 
train: images/train  # train images (relative to 'path') 128 images
val: images/val  # val images (relative to 'path') 128 images
test:  # test images (optional)

names: 
  0: name1
  1: name2
  .....
2、把data.yaml放在yolov8–>ultralytics->datasets文件夹下面

Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集

3、然后模型配置改进yaml文件在主目录新建文件夹v8_cfg存放

Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集

模型改进修改与yolov5 类似,只是修改的文件名称与文件地址变化了

1.首先在yolov8–>ultralytics–>nn–>model.py添加你自己的新模型

2.然后在yolov8–>ultralytics–>nn–>task.py–>parse_model解析文件里面导入并添加你的模块

3.修改yolov8n.yaml文件

4、权重.pt文件直接下载到主目录下面

Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集

5、然后在主目录下新建推理v8_train.py
from ultralytics import YOLO

if __name__ == '__main__':
    # 加载模型
    model = YOLO("./v8_cfg/yolov8n-test.yaml")  # build a new model from scratch
    results =model.train(data="data.yaml" ,epochs=500, model="yolov8n-test.yaml",imgsz=640,batch=30,workers = 2)
此时运行改进模型发现不会载入预训练权重,原因是因为yolov8 model只能载入pt或者yaml,二者只能其一,我们改进模型肯定要 选择mode = yaml
(1)参考魔傀面具大佬的blibli将下面这段代码插入yolov8–>ultralytics–>yolo–>engine–>model.py–>def _new,可以载入预训练权重进行迁移学习(如果不想用预训练权重想从0开始,则注释就行)
""" 添加代码bug """
ckpt = torch.load('yolov8n.pt')
csd = ckpt['model'].float().state_dict()
csd = intersect_dicts(csd,self.model.state_dict())
self.model.load_state_dict(csd,strict = False)
print(f'Transferred {len(csd)}/{len(self.model.state_dict())} items')
""" 添加代码bug """
具体插入位置如下图所示

Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集

(2)yolov8 train的时候会重新载入一次模型,用yolo测试模型yaml文件一次,后面又会覆盖一次 所以这里需要修改代码 文件路径yolov8–>ultralytics–>yolo–>engine–>model.py–>def train
        self.trainer = TASK_MAP[self.task][1](overrides=overrides)
        # if not overrides.get('resume'):  # manually set model only if not resuming
        #     self.trainer.model = self.trainer.get_model(weights=self.model if self.ckpt else None, cfg=self.model.yaml)
        #     self.model = self.trainer.model

        self.trainer.model = self.model
插入具体位置如下图所示

Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集文章来源地址https://www.toymoban.com/news/detail-458788.html

6、然后在主目录下新建推理文件v8_predict.py,将best.pt移动到主目录下 新建v8_images文件夹存放你需要推理的图片
from ultralytics import YOLO

if __name__ == '__main__':
    # Load a model
    model = YOLO("best.pt")

    # Predict with the model
    results = model(source="v8_images",save=True,device= "cuda:0")  # predict on an image
7、2023.10.6更新,由于作者yolov8框架的更新,现在载入预训练模型可以使用作者的api接口 model.load(‘yolov8n.pt’)来使用,只要权重路径是对的,也不用使用更改源码的方式了。
from ultralytics import YOLO


if __name__ == '__main__':
    # 直接使用预训练模型创建模型.
    # model = YOLO('yolov8n.pt')
    # model.train(**{'cfg':'ultralytics/cfg/exp1.yaml', 'data':'dataset/data.yaml'})
    
    # 使用yaml配置文件来创建模型,并导入预训练权重.
    model = YOLO('ultralytics/cfg/models/v8/yolov8n.yaml')
    model.load('yolov8n.pt')
    model.train(**{'cfg':'ultralytics/cfg/PCB.yaml', 'data':'datasets/VOCPCB.yaml'})
    
    # 模型验证
    # model = YOLO('runs/detect/train11/weights/best.pt')
    # model.val(**{'cfg':'ultralytics/cfg/PCB.yaml', 'data':'datasets/VOCPCB.yaml'})
    
    # 模型推理
    # model = YOLO('runs/detect/yolov8n_exp/best.pt')
    # model.predict(source='dataset/images/test', **{'save':True})

    # 模型导出
    # model = YOLO("Weight/yolov8n.pt")  # load an official model
    # model.export(format="onnx")

到了这里,关于Yolov8改进模型后使用预训练权重迁移学习训练自己的数据集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【3】使用YOLOv8训练自己的目标检测数据集-【收集数据集】-【标注数据集】-【划分数据集】-【配置训练环境】-【训练模型】-【评估模型】-【导出模型】

    云服务器训练YOLOv8-新手教程-哔哩哔哩 🍀2023.11.20 更新了划分数据集的脚本 在自定义数据上训练 YOLOv8 目标检测模型的步骤可以总结如下 6 步: 🌟收集数据集 🌟标注数据集 🌟划分数据集 🌟配置训练环境 🌟训练模型 🌟评估模型 随着深度学习技术在计算机视觉领域的广泛

    2023年04月15日
    浏览(66)
  • YOLOv8改进 | 主干篇 | 华为移动端模型Ghostnetv1改进特征提取网络

    本文给大家带来的改进机制是华为移动端模型 Ghostnetv1 ,华为的 GhostNet 是一种轻量级卷积神经网络,旨在在计算资源有限的嵌入式设备上实现高性能的图像分类。 GhostNet的关键思想 在于通过引入Ghost模块,以较低的计算成本增加了特征图的数量,从而提高了模型的性能。这种

    2024年01月19日
    浏览(39)
  • CSDN独家|YOLOv5改进、YOLOv7改进、YOLOv8改进、YOLOX改进目录一览|YOLO改进模型全系列目录(芒果书系列) | 人工智能专家老师联袂推荐

    🔥 《芒果书》系列改进专栏内的改进文章,均包含多种模型改进方式,均适用于 YOLOv3 、 YOLOv4 、 YOLOR 、 YOLOX 、 YOLOv5 、 YOLOv7 、 YOLOv8 改进(重点)!!! 🔥 专栏创新点教程 均有不少同学反应和我说已经在自己的数据集上有效涨点啦!! 包括COCO数据集也能涨点 , 所有文

    2024年02月03日
    浏览(43)
  • 从0开始yolov8模型目标检测训练

    首先有大环境,即已经准备好了python、nvidia驱动、cuda、cudnn等。 2.1 创建虚拟环境 2.2 激活虚拟环境 注意:激活虚拟环境的时候,需要清楚自己创建的虚拟环境(yolov8)是在root权限下,还是在user权限下,否则,当使用source activate yolov8激活环境的时候,可能一直会提示Could n

    2024年02月12日
    浏览(30)
  • 三、yolov8训练结果查看和模型预测

    1、在模型训练结束后,如下图所示,找到该文件夹。 2、然后找到weights文件夹中的best.pt文件,这就是该数据训练后的模型。 1、在assets文件夹下创建FPC-2文件夹,放入一些同类FPC预测结果。 2、和训练同级文件夹,找到predict.py文件,即为模型预测文件。 3、修改model路径,修改

    2024年01月23日
    浏览(39)
  • YOLOv8改进 | 主干篇 | 低照度增强网络PE-YOLO改进主干(改进暗光条件下的物体检测模型)

    本文给大家带来的改进机制是低照度图像增强网络 PE-YOLO 中的PENet,PENet通过 拉普拉斯金字塔 将图像分解成多个分辨率的组件,增强图像细节和低频信息。它包括一个 细节处理模块(DPM) ,用于通过上下文分支和边缘分支增强图像细节,以及一个 低频增强滤波器(LEF) ,以

    2024年01月19日
    浏览(36)
  • 目标检测再升级!YOLOv8模型训练和部署

    YOLOv8 是 Ultralytics 开发的 YOLO(You Only Look Once)物体检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的SOTA模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活性。它可以在大型数据集上进行训练,并且能够在各种硬件平台上运行

    2024年01月20日
    浏览(32)
  • YOLOV8目标检测——最全最完整模型训练过程记录

    本文记录一下yolov8训练目标检测模型的过程,以及其中的一些需要注意的地方。本人是yolov5直接使用的yolov8,因此本文也记录了与yolov5的训练过程不一样的地方。 原创声明:如有转载请注明文章来源。码字不易,如对卿有所帮助,欢迎评论、点赞、收藏。 这边说一下,pip这

    2024年02月07日
    浏览(38)
  • YOLOv8改进 | 注意力篇 | ACmix自注意力与卷积混合模型(提高FPS+检测效率)

    本文给大家带来的改进机制是 ACmix自注意力机制的改进版本 ,它的核心思想是,传统卷积操作和自注意力模块的大部分计算都可以通过1x1的卷积来实现。ACmix首先使用1x1卷积对输入特征图进行投影,生成一组中间特征,然后根据不同的范式,即自注意力和卷积方式,分别重用

    2024年02月03日
    浏览(35)
  • 手把手调参 YOLOv8 模型之 训练|验证|推理配置-详解

    YOLO系列模型在目标检测领域有着十分重要的地位,随着版本不停的迭代,模型的性能在不断地提升,源码提供的功能也越来越多,那么如何使用源码就显得十分的重要,接下来通过文章带大家手把手去了解Yolov8(最新版本)的每一个参数的含义,并且通过具体的图片例子让大

    2024年02月05日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包