首页 > 其他分享 >Pytorch_YOLO-v8-模型训练

Pytorch_YOLO-v8-模型训练

时间:2023-02-01 18:12:00浏览次数:51  
标签:ultralytics 模型 YOLO yaml Pytorch train v8 model

dataset

YOLO会自动将…/datasets/dataset_new/images/train/1.jpg中的/images/替换成/labels/以寻找它的标签
,如…/datasets/dataset_new/labels/train/1.txt 

 0: person
 1: vehicle 

以模型yolov8s.yaml为例子

ultralytics/ultralytics/models/v8/yolov8s.yaml
在models文件下,我们会看到四个YOLO v5模型的配置文件yolov5s.yaml、yolov5n.yaml、yolov5m.yaml、yolov5l.yaml,
YOLO在(n, s, m, l, x)这几个版本的模型网络结构都是一样的,
    只不过会在每个子模块中采用不同的深度depth_multiple和宽度width_multiple参数 
	根据对它们值的大小设定,来得到yolov5不同大小模型

  depth_multiple表示channel的缩放系数,就是将配置里面的backbone和head部分有关通道的设置,全部乘以该系数即可;
 而width_multiple表示BottleneckCSP模块的层缩放系数,将所有的BottleneckCSP模块的number系数乘上该参数就可以最终的层个数;
 可以发现通过这两个参数就可以实现不同大小不同复杂度的模型设计
 
修改模型配置 nc改为自己要训练的数目 10
yolov8s.yaml 
   # Parameters
nc: 10  # number of classes

训练前的参数配置

配置文件 ultralytics/ultralytics/yolo/utils/__init__.py 
  DEFAULT_CFG_PATH = ROOT / "yolo/cfg/default.yaml"

编写模型yaml文件 或者用预训练模型
  V8把所有的配置项目全部解耦到配置文件,ultralytics/ultralytics/yolo/cfg/default.yaml
   不再像YOLOV5一样,一部分在配置文件,一部分在train.py 的启动参数中
   ultralytics/ultralytics/yolo/cfg/default.yaml
    task: detect  # inference task, i.e. detect, segment, classify
    mode: train  # YOLO mode, i.e. train, val, predict, export

# Train settings -------------------------------------------------------------------------------------------------------
model:yolov8s.yaml  # path to model file, i.e. yolov8n.pt, yolov8n.yaml
data:dataset_custome.yaml  # path to data file, i.e. i.e. coco128.yaml	

##

训练 ,下载预训练权重文件

 运行:YOLOv8\ultralytics\yolo\v8\detect\train.py 
 
###或者执行以下脚本  
from ultralytics import YOLO

# Load a model
model = YOLO("yolov8s.yaml")  # build a new model from scratch
model = YOLO("yolov8s.pt")  # load a pretrained model (recommended for training) 更有利于网络模型的复现,以及加快模型训练收敛速度

# Use the model
results = model.train(data="dataset_custome.yaml", epochs=3)  # train the model
#results = model.val()  # evaluate model performance on the validation set
#results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
success = model.export(format="onnx")  # export the model to ONNX format	

推理

推理 设置好task、mode、model和测试图片路径source即可
task: "detect" # choices=['detect', 'segment', 'classify', 'init'] # init is a special case. Specify task to run.
mode: "predict" # choices=['train', 'val', 'predict', 'export'] # mode to run task in.
model: E:\\DLTest\\YOLOv8\\runs\\detect\\best.pt 
source: MaskDataSet/test/images/ # source directory for images or videos

导出

 导出的onnx模型和.pt格式的模型在同一路径下	

参考

 YOLO_V8推理和模型格式转换 https://blog.csdn.net/duan19920101/article/details/128739800

标签:ultralytics,模型,YOLO,yaml,Pytorch,train,v8,model
From: https://www.cnblogs.com/ytwang/p/17083775.html

相关文章

  • 在 PyTorch 中使用梯度检查点在GPU 上训练更大的模型
    作为机器学习从业者,我们经常会遇到这样的情况,想要训练一个比较大的模型,而GPU却因为内存不足而无法训练它。当我们在出于安全原因不允许在云计算的环境中工作时,这个问题经......
  • 小土堆pytorch笔记
    I验证网络结构是否有误初始化一个符合网络的输入数据input=torch.ones((64,3,32,32))将输入数据传进网络,看是否报错print(network(input).shape)II修......
  • Yolov4的框架理解
                                                        ......
  • Yolov3的大致框架理解
                                                       ......
  • YOLOX (ByteTrack) 多卡训练卡死 在 initialization, dist.barrier 的解决方法
    https://github.com/Megvii-BaseDetection/YOLOX/issues/1289#issuecomment-1409988436Heyguys.Ifoundaworkaroundinmycase.(pleasefixmeifI'mmistaken......
  • Pytorch_YOLO
    历史版本2016年,JosephRedmon提出了他至今以来最有名的个人项目:JosephRedmon《YouOnlyLookOnce:Unified,Real-TimeObjectDetection》 https://pjreddie.co......
  • Win10环境下yolov8(ultralytics) 快速配置与测试
    win10下亲测有效!(如果想在tensorrt+cuda下部署yolov8,直接看第五5章)一、win10下创建yolov8环境#注:python其他版本在win10下,可能有坑,我已经替你踩坑了,这里python3.9亲测有......
  • PyTorch图像分类全流程实战--模型部署07
    教程同济子豪兄https://space.bilibili.com/1900783代码运行云GPU平台:https://featurize.cn/?s=d7ce99f842414bfcaea5662a97581bd1模型部署入门教程(一):模型部署简介htt......
  • Yolov3
    一、YoloV3实现思路 整个YoloV3可以分为三个部分,分别是Darknet53,FPN以及YoloHead。Darknet53可以被称作YoloV3的主干特征提取网络,输入的图片首先会在Darknet......
  • yolov5训练前准备工作(采样、制作数据集、数据集增强、数据集预处理)
    写在前面训练数据可以有多种输入方式,本文提到了其中一种。使用的时候注意工作路径。使用方法:收集图片,或使用video_2_jpg.py采样视频,(用cam_video.py拍视频,用get_img.py拍照......