[YOLOv8] 数据集训练参数详解

您所在的位置:网站首页 高铁的数据参数是多少 [YOLOv8] 数据集训练参数详解

[YOLOv8] 数据集训练参数详解

2024-05-26 23:47| 来源: 网络整理| 查看: 265

什么是YOLO训练?

YOLO(You Only Look Once)是一种实时目标检测算法,最早由 Joseph Redmon 等人于2016年提出。与传统的目标检测算法相比,YOLO具有速度快、精度高、可扩展性强等优点,因此在计算机视觉领域得到了广泛的应用。

YOLO的训练过程包括两个主要步骤:数据收集和模型训练。

数据收集:需要收集大量的带有标注的数据集,包括图像和对应的目标标注信息。标注信息通常使用边界框和类别标签来表示目标的位置和类型。

[YOLOv8] 缺陷检测之数据集标注(LabelImg,LabelMe,AnyLabeling,LabelStudio等)

模型训练:使用收集到的数据集对YOLO模型进行训练,通过反向传播算法不断调整模型参数,使其能够更好地拟合数据分布,从而提高检测准确率。

[YOLOv8] 详细教程 - 缺陷检测之训练自定义数据集(含图文)

YOLO的训练过程使用了卷积神经网络(CNN)的结构,将输入图像划分为多个网格单元,并在每个网格单元中预测目标的位置和类别概率分布。同时,YOLO还采用了一些技巧来加速训练和提高检测速度,例如使用梯度裁剪、走分层和融合技术等。

YOLOv8训练参数列表

训练 - Ultralytics YOLOv8 文档

YOLO模型的训练设置是指用于对数据集进行模型训练的各种超参数和配置。这些设置会影响模型的性能、速度和准确性。一些常见的YOLO训练设置包括批大小、学习率、动量和权重衰减。其他可能影响训练过程的因素包括优化器的选择、损失函数的选择以及训练数据集的大小和组成。仔细调整和实验这些设置以实现给定任务的最佳性能是非常重要的。

 

训练自定义数据集例子 from ultralytics import YOLO if __name__ == '__main__': # 加载一个模型 model = YOLO('D:/my_project/wepy/src/wepy/aitool/train/runs/detect/train3/weights/best.pt') # 从权重文件初始化模型 # model = YOLO('yolov8n.yaml') # 从YAML建立一个新模型 # 训练模型 results = model.train( data='D:/YOLOv8Train/jj_dataset/data.yaml', device='0', epochs=200, # 训练过程中整个数据集将被迭代多少次,显卡不行你就调小点 batch=8, # 一次看完多少张图片才进行权重更新 verbose=False, patience=0, save=True, save_period=10, imgsz=640) 训练参数详解 model

指定了所使用的模型文件的位置,例如 yolov8n.pt 或 yolov8n.yaml。

“.yaml”和“.pt”和的区别: “.pt”类型的文件,是预训练好的模型,里面包含了模型的网络结构和训练好的参数,已经具备了检测目标的能力。如果是自定义训练数据集特别大,非常耗时,可以使用上次训练好的模型(“.pt”文件)来开始训练,这样可以缩短训练时间。

“.yaml”文件描述了模型的网络结构,对于训练自定义的数据集,开始我们一般采用yolov8n.yaml这种.yaml文件的形式,等训练完生成“.pt”文件之后,可以考虑切换到“.pt”,但是并不意味这使用上一次训练生成的“.pt”文件来训练,就一定比使用“.yaml”文件重新训练要好。

data

训练数据集文件的位置,例如 coco128.yaml,或者自定义的数据集data.yaml。数据集文件包含了训练和验证所需的图像、标签。

例如:

names: 0: normal 1: dip 2: black_hole 3: bubble nc: 4 test: D:\YOLOv8Train\v8_train_datasets\jj_dataset\test train: D:\YOLOv8Train\v8_train_datasets\jj_dataset\train val: D:\YOLOv8Train\v8_train_datasets\jj_dataset\val

[YOLOv8] - YOLO数据集格式介绍和案例

epochs

训练的轮数,默认值100。该参数设定了模型将会被训练多少次,每一轮都遍历整个训练数据集。训练的轮数越多,模型对数据的学习就越充分,但也增加了训练时间。

设置策略: 默认是100轮数。但一般对于自定义数据集,可以加大到300,可以观察每一轮训练的指标(mAP,Recall,Precision)来手动提前停止,或者通过“patience”参数来提前停止训练。

patience

早停的等待轮数,默认值50。在训练过程中,如果在一定的轮数内没有观察到模型性能的明显提升,就会停止训练。这个参数确定了等待的轮数,如果超过该轮数仍没有改进,则停止训练。

为什么要早停? 早停能减少过拟合。过拟合(overfitting)是指只能拟合训练数据,但不能很好地拟合不包含在训练数据中的其他数据的状态。

batch

每批图像数量(-1为自动批大小)。在训练过程中,数据被分成多个批次进行处理,每个批次包含一定数量的图像。这个参数确定了每个批次中包含的图像数量。如果设置为“-1”,则会自动调整批次大小,至你的显卡能容纳的最多图像数量。

设置策略:

每完成一批图像的训练,就会计算loss,进行权重参数的更新。如果你的数据集比较大,一般认为batch越大越好。因为batch越大意味batch中的图像更有可能代表整个数据集的分布,从而帮助模型更好的学习。但batch越大占的用显卡显存空间越多,你可以先设置一个偏大的值,比如32,如果报显存溢出,逐步减少调整到一个占用80%~90%之间的CPU占用率的batch值即可。

imgsz

输入图像的大小,以整数表示,默认值为640。可以指定一个整数值表示图像的宽和高为相同值,也可以是宽度和高度的组合。例如640表示图像的宽度和高度均为640像素。

设置策略:

YOLOv8官网提供的训练集的imgsz基本上都是使用640。如果数据集中存在大量小对象,增大输入图像的尺寸imgsz可以使得这些小对象从高分辨率中受益,更好的被检测出。你可以根据你收集的数据集的图像特点,图像大小分布,来进行自定义,看看哪个imgsz效果最好。

save

是否保存训练的检查点和预测结果,默认值为True。当设置为true时,模型的权重和训练状态会被保存下来,以便在需要时进行恢复或继续训练。预测结果也可以被保存下来以供后续分析和评估。

save_period

每x轮次保存检查点(如果



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3