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