当前位置: 首页 > news >正文

yolo11参数信息

yolo11参数信息

本文介绍yolo11训练和推理默认参数信息


一、训练参数

训练脚本:

import sys
import torch
torch.cuda.empty_cache()
sys.path.append('/ultralytics')
from ultralytics import YOLO

# Load a model
model = YOLO("yolo11-seg.yaml")

# Train the model
results = model.train(data="/home/zx/code/datasets/zx.yaml", epochs=10000, imgsz=640, lr0=0.0001, batch=32, workers=12)
论据类型默认值说明
modelstrNone指定用于训练的模型文件。接受指向 .pt 预训练模型或 .yaml 配置文件。
datastrNone数据集配置文件的路径(例如 coco8.yaml),包含训练和验证数据的类名和类数。
epochsint100训练的总轮数,每个轮数遍历整个数据集一次。
timefloatNone训练的最长时间(小时),若设置则覆盖 epochs 参数。
patienceint100在验证指标无改善的情况下提前停止训练的轮数。
batchint16批量大小,整数(如 batch=16),自动模式 (batch=-1 约 60% GPU 内存),或指定利用率 (batch=0.70)。
imgszint/list640训练时的目标图像大小,所有图像都会被调整到此尺寸。
saveboolTrue是否保存训练检查点和最终模型权重。
save_periodint-1N 个轮数保存一次检查点,-1 禁用。
cacheboolFalse是否缓存数据集图像,提高训练速度,代价是增加内存使用。
deviceint/strNone训练设备,如 0(单GPU)、0,1(多GPU)、cpu(CPU 训练)或 mps(Apple Silicon)。
workersint8加载数据的线程数,影响数据预处理速度。
projectstrNone训练结果的保存目录。
namestrNone训练运行的名称,在 project 目录下创建子目录存储训练输出。
exist_okboolFalse是否允许覆盖现有的项目目录。
pretrainedbool/strTrue是否从预训练模型开始训练,可以为模型路径。
optimizerstr‘auto’选择优化器,如 SGDAdamAdamW,或 auto 自动选择。
seedint0设置随机种子,以确保可复现的训练结果。
deterministicboolTrue是否强制使用确定性算法,影响可复现性和速度。
single_clsboolFalse是否将所有类别视为单一类别,适用于二分类任务。
classeslist[int]None训练时筛选指定类别的 ID。
rectboolFalse是否进行矩形训练,以减少填充,提高效率。
multi_scaleboolFalse是否启用多尺度训练,动态调整 imgsz
cos_lrboolFalse余弦学习率调度,逐渐调整学习率。
close_mosaicint10训练最后 N 轮禁用马赛克数据增强。
resumeboolFalse是否从上次保存的检查点恢复训练。
ampboolTrue是否启用自动混合精度(AMP)训练,减少显存占用。
fractionfloat1.0训练数据集的子集比例,用于快速实验。
profileboolFalse是否对 ONNX 和 TensorRT 速度进行剖析。
freezeint/listNone冻结模型的前 N 层或指定层,适用于迁移学习。
lr0float0.01初始学习率,SGD=1E-2Adam=1E-3
lrffloat0.01最终学习率占初始学习率的比例(lr0 * lrf)。
momentumfloat0.937SGD 动量因子或 Adam beta1
weight_decayfloat0.0005L2 正则化项,防止过拟合。
warmup_epochsfloat3.0预热轮数,逐步增加学习率。
warmup_momentumfloat0.8预热阶段的动量初始值。
warmup_bias_lrfloat0.1预热阶段的偏置学习率。
boxfloat7.5边框损失权重。
clsfloat0.5分类损失权重。
dflfloat1.5分布焦点损失权重。
posefloat12.0姿态损失权重(用于姿态估计)。
kobjfloat2.0关键点对象性损失权重。
nbsint64损失归一化的标称批量大小。
overlap_maskboolTrue目标遮罩是否合并训练,影响重叠目标。
mask_ratioint4分割掩码的下采样率。
dropoutfloat0.0分类任务中防止过拟合的 dropout 率。
valboolTrue训练过程中是否进行验证。
plotsboolFalse是否生成训练和验证结果的可视化图表。

二、推理参数

推理脚本:

import sys
sys.path.append('/ultralytics')
from ultralytics import YOLO

# 加载模型
model = YOLO("/ultralytics/runs/segment/train10/weights/best.pt")

# 进行预测
results = model.predict(
    source="/home/zx/code/test/source",   # 输入数据路径
    imgsz=640,                     # 图像大小
    conf=0.3,                      # 置信度阈值
    project="/home/zx/code/test/out",  # 输出结果的项目路径
    name="result",                  # 结果文件夹名称
    save=True
)
参数类型默认值说明
sourcestr‘ultralytics/assets’指定推理的数据源。可以是图像路径、视频文件、目录、URL 或用于实时馈送的设备 ID。支持多种格式和来源,可灵活应用于不同类型的输入。
conffloat0.25设置检测的最小置信度阈值。如果检测到的对象置信度低于此阈值,则将不予考虑。调整该值有助于减少误报。
ioufloat0.7非最大抑制 (NMS) 的交叉重叠 (IoU) 阈值。较低的数值可以消除重叠的方框,从而减少检测次数,这对减少重复检测非常有用。
imgszint/tuple640定义用于推理的图像大小。可以是一个整数 640 或一个 (高度, 宽度) 元组。适当调整大小可以提高检测效率、精确度和处理速度。
halfboolFalse启用半精度 (FP16) 推理,可加快支持的 GPU 上的模型推理速度,同时将对精度的影响降至最低。
devicestrNone指定用于推理的设备(例如:cpu, cuda:0 或 0)。允许用户选择 CPU、特定 GPU 或其他计算设备执行模型。
batchint1指定推理的批量大小(仅当来源为目录、视频文件或 .txt 文件)。更大的批量规模可以提供更高的吞吐量,缩短推理所需的总时间。
max_detint300每幅图像允许的最大检测次数。限制模型在单次推理中可以检测到的物体总数,防止在密集场景中产生过多的输出。
vid_strideint1视频输入的帧间距。允许跳过视频中的帧,以加快处理速度,但会牺牲时间分辨率。数值越大,跳帧越多。
stream_bufferboolFalse决定是否对接收到的视频流帧进行排队。如果为 False,则丢弃旧帧,优化实时应用;如果为 True,则排队新帧,确保不跳帧,但可能会造成延迟。
visualizeboolFalse在推理过程中激活模型特征的可视化,从而深入了解模型“看到”了什么。这对调试和模型解释非常有用。
augmentboolFalse可对预测进行测试时间增强 (TTA),从而在牺牲推理速度的情况下提高检测的鲁棒性。
agnostic_nmsboolFalse启用与类别无关的非最大抑制 (NMS),可合并不同类别的重叠方框。这在多类检测场景中非常有用。
classeslist[int]None根据一组类别 ID 过滤预测结果。只有属于指定类别的检测结果才会返回。这对于在多类检测任务中集中检测相关对象非常有用。
retina_masksboolFalse返回高分辨率分割掩码。如果启用,返回的掩码 (masks.data) 将与原始图像大小匹配;如果禁用,它们将与推理过程中使用的图像大小一致。
embedlist[int]None指定从中提取特征向量或嵌入的层。这对聚类或相似性搜索等下游任务非常有用。
projectstrNone保存预测结果的项目目录名称(如果 save 已启用)。
namestrNone预测运行的名称。用于在项目文件夹内创建一个子目录,在 save 已启用的情况下存储预测输出结果。
streamboolFalse通过返回结果对象生成器,而不是一次性将所有帧加载到内存中,从而实现对长视频或大量图像的高效内存处理。
verboseboolTrue控制是否在终端显示详细的推理日志,提供预测过程的实时反馈。

可视化参数:

参数类型默认值说明
showboolFalse如果为 True,则在一个窗口中显示带有注释的图像或视频。有助于在开发或测试过程中提供即时视觉反馈。
saveboolFalse (Python) / True (CLI)可将注释的图像或视频保存到文件中,对记录、进一步分析或共享结果非常有用。CLI 中默认为 True,Python 中默认为 False。
save_framesboolFalse处理视频时,将单个帧保存为图像。可用于提取特定帧或进行详细的逐帧分析。
save_txtboolFalse将检测结果保存在文本文件中,格式为 [class] [x_center] [y_center] [width] [height] [confidence],便于与其他分析工具集成。
save_confboolFalse在保存的文本文件中包含置信度分数,增强后期处理和分析的细节。
save_cropboolFalse保存经过裁剪的检测图像,可用于数据集扩充、分析或创建特定物体的重点数据集。
show_labelsboolTrue在可视化输出中显示检测到的标签,使用户能立即了解检测到的物体。
show_confboolTrue在标签旁显示检测的置信度得分,便于了解模型的确定性。
show_boxesboolTrue在检测到的物体周围绘制边界框,有助于在图像或视频帧中定位物体。
line_widthNone 或 intNone指定边界框的线宽。如果为 None,则根据图像大小自动调整线宽,以优化可视化效果。
font_sizefloatNone注释文本的字体大小。如果设置为 None,则使用默认字体大小。
fontstr‘Arial.ttf’可视化文本注释的字体名称或路径。
pilboolFalse以 PIL 图像对象(而非 numpy 数组)的形式返回图像。
kpt_radiusint5在姿态估计可视化时,关键点的半径。
kpt_lineboolTrue在姿势估计可视化时,用线条连接关键点。
masksboolTrue在可视化输出中显示分割掩码。
probsboolTrue在可视化中加入分类概率。
filenamestrNonesave=True 时,指定保存注释图像的路径和文件名。
color_modestr‘class’指定可视化的着色模式,例如 "instance""class"
txt_colortuple[int, int, int](255, 255, 255)分类任务注释的 RGB 文本颜色。

三、验证参数

验证参数:

参数类型默认值说明
datastrNone指定数据集配置文件的路径(如 coco8.yaml),该文件包括指向验证数据、类名和类别数的信息。
imgszint640定义输入图像的尺寸,所有图像在处理前都会调整到该尺寸。较大尺寸可以提高小物体的检测精度,但会增加计算时间。
batchint16设置每批图像的数量。较大值可提高 GPU 内存利用效率,但需要更多 VRAM,需根据硬件资源进行调整。
save_jsonboolFalse若为 True,则将结果保存为 JSON 文件,以便进一步分析、与其他工具集成或提交至 COCO 评估服务器。
save_hybridboolFalse若为 True,保存混合版本的标签,将原始注释与额外的模型预测结合,适用于半监督学习和数据增强。
conffloat0.001设置最小置信度阈值。较低的值会提高召回率,但可能带来更多误报,在计算精确度-召回曲线时使用。
ioufloat0.6设置非最大抑制(NMS)的交并比(IoU)阈值,以控制重复检测的消除。
max_detint300限制每幅图像的最大检测数量,有助于高密度场景管理计算资源。
halfboolTrue采用半精度(FP16)计算,减少内存占用,提高推理速度,同时将精度影响降至最低。
devicestrNone指定用于推理的设备(如 cpucuda:0)。若为 None,则自动选择最佳可用设备,可用逗号分隔多个 CUDA 设备。
dnnboolFalse若为 True,则使用 OpenCV 的 DNN 模块进行 ONNX 模型推理,而非 PyTorch。
plotsboolFalse若为 True,生成并保存预测结果与真实值对比图、混淆矩阵和 PR 曲线,以可视化评估模型性能。
rectboolTrue若为 True,则使用矩形推理进行分批处理,减少填充,提高处理效率和推理速度。
splitstr‘val’指定用于验证的数据集分割,如 valtesttrain,以便灵活选择数据进行性能评估。
projectstrNone指定保存验证结果的项目目录名称,以便整理不同实验或模型的结果。
namestrNone指定验证运行的名称,用于在项目文件夹内创建子目录存储日志和输出结果。
verboseboolFalse若为 True,则在验证过程中显示详细信息,如每类指标、批处理进度及其他调试信息。
save_txtboolFalse若为 True,将检测结果保存为文本文件,每幅图像对应一个文件,便于后续分析或集成至其他系统。
save_confboolFalse若为 True,在保存的文本文件中包含置信度值,需与 save_txt 共同启用,以提供更详细的分析数据。
save_cropboolFalse若为 True,保存检测到的目标裁剪图像,可用于创建重点数据集、视觉验证或分析检测结果。
workersint8设置数据加载的工作线程数。较大值可加快数据预处理速度,但可能增加 CPU 占用。设为 0 时使用主线程,适用于某些稳定性要求较高的环境。
augmentboolFalse若为 True,在验证过程中启用测试时间增强(TTA),通过在转换后的输入上运行推理,以推理速度为代价提高检测精度。
agnostic_nmsboolFalse启用类别无关的非最大抑制(NMS),可合并重叠框,而不考虑类别。这在实例检测任务中较有用。
single_clsboolFalse在验证过程中将所有类别视为单一类别,适用于二元检测任务或类别区分不重要的应用场景。

四、导出参数

导出脚本:

import sys
sys.path.append('/ultralytics')
from ultralytics import YOLO

# Load a model
model = YOLO("/ultralytics/runs/segment/train4/weights/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
参数类型默认值说明
formatstr‘torchscript’导出模型的目标格式,例如 'onnx''torchscript''engine'(TensorRT)等,每种格式适用于不同的部署环境。
imgszint 或 tuple640模型输入所需的图像尺寸,可为整数(如 640,表示 640×640)或元组 (height, width) 以指定具体尺寸。
kerasboolFalse若为 True,则导出为 Keras 格式(TensorFlow SavedModel),以支持 TensorFlow Serving 和 API。
optimizeboolFalse导出至 TorchScript 时进行优化,以缩小模型大小并提高推理性能。不兼容 NCNN 格式或 CUDA 设备。
halfboolFalse启用 FP16(半精度)量化,适用于支持的硬件,可减少模型大小并可能加快推理速度。与 INT8 量化或 ONNX CPU 输出不兼容。
int8boolFalse启用 INT8 量化,以进一步压缩模型并提高推理速度,同时尽可能减少精度损失。与 TensorRT 结合使用时,将执行训练后量化(PTQ)。
dynamicboolFalse允许 ONNX、TensorRT 和 OpenVINO 生成动态输入尺寸,提高处理不同图像尺寸的灵活性。启用 TensorRT INT8 时自动设为 True
simplifyboolTrue简化 ONNX 模型图(onnxslim),可能提高推理引擎的性能和兼容性。
opsetintNone指定 ONNX 操作集版本,以确保与不同的 ONNX 解析器和运行时兼容。如果未设置,则使用最新支持的版本。
workspacefloat 或 NoneNone设定工作区的最大大小(单位:GiB),用于 TensorRT 优化,以平衡内存使用和性能。若设为 None,则 TensorRT 会自动分配,最高可达设备最大值。
nmsboolFalse若支持(视导出格式而定),则在导出模型中添加非最大值抑制(NMS),以优化检测后处理。该功能不适用于端对端模型。
batchint1指定导出模型的批量推理大小,即可同时处理的最大图像数。在 predict 模式下生效。若导出至边缘 TPU,该值自动设为 1
devicestrNone指定导出设备,如 GPU (device=0)、CPU (device=cpu)、Apple Silicon 的 MPS (device=mps),或 NVIDIA Jetson 的 DLA (device=dla:0device=dla:1)。TensorRT 输出默认使用 GPU。
datastr‘coco8.yaml’指定数据集配置文件(默认:coco8.yaml),在 INT8 量化校准时至关重要。若启用 INT8 但未指定数据集,则系统会分配默认数据集。
http://www.dtcms.com/a/106686.html

相关文章:

  • 学习总结 网格划分+瞬态求解设置
  • vector模拟实现2
  • Windows系统服务器安装Office Online Server
  • C语言复习笔记--指针(2)
  • 详解 MySQL InnoDB 引擎中的聚簇索引和非聚簇索的区别
  • OpenCV边界填充方法详解
  • Python入门(6):面向对象编程(OOP)
  • Smith Chart阻抗匹配
  • elasticsearch 7.17 索引模板
  • 一段式端到端自动驾驶:UniAD:Planning-oriented Autonomous Driving
  • python函数装饰器
  • (linux操作系统)环境变量
  • 【NS3-如何在NS3中模拟每个节点的本地时钟?
  • 自动获取屏幕尺寸信息的html文件
  • [图文]directed不是direct-《分析模式》漫谈50
  • 算法刷题记录——LeetCode篇(3.10) [第291~300题](持续更新)
  • 【Java中级】10章、内部类、局部内部类、匿名内部类、成员内部类、静态内部类的基本语法和细节讲解配套例题巩固理解【5】
  • 《AI大模型应知应会100篇》第7篇:Prompt Engineering基础:如何与大模型有效沟通
  • SAP BDC应用1-批量处理财务三大报表
  • Java 代理模式 详解
  • 4.2学习总结
  • Vue与React区别分析
  • 机器学习开发全流程详解:从数据到部署的完整指南
  • el-dialog实现遮罩层后面的内容也能点击
  • SqlServer整库迁移至Oracle
  • 鹧鸪云光伏仿真软件场外设计功能:构建系统级工程闭环
  • time.sleep(10)和 async 区别
  • 通信算法之251: 时频图谱spectrogram(如短时傅里叶变换STFT)
  • 数据结构——队列的实现
  • LeetCode算法题(Go语言实现)_26