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)
论据 类型 默认值 说明
model str None 指定用于训练的模型文件。接受指向 .pt 预训练模型或 .yaml 配置文件。
data str None 数据集配置文件的路径(例如 coco8.yaml),包含训练和验证数据的类名和类数。
epochs int 100 训练的总轮数,每个轮数遍历整个数据集一次。
time float None 训练的最长时间(小时),若设置则覆盖 epochs 参数。
patience int 100 在验证指标无改善的情况下提前停止训练的轮数。
batch int 16 批量大小,整数(如 batch=16),自动模式 (batch=-1 约 60% GPU 内存),或指定利用率 (batch=0.70)。
imgsz int/list 640 训练时的目标图像大小,所有图像都会被调整到此尺寸。
save bool True 是否保存训练检查点和最终模型权重。
save_period int -1 N 个轮数保存一次检查点,-1 禁用。
cache bool False 是否缓存数据集图像,提高训练速度,代价是增加内存使用。
device int/str None 训练设备,如 0(单GPU)、0,1(多GPU)、cpu(CPU 训练)或 mps(Apple Silicon)。
workers int 8 加载数据的线程数,影响数据预处理速度。
project str None 训练结果的保存目录。
name str None 训练运行的名称,在 project 目录下创建子目录存储训练输出。
exist_ok bool False 是否允许覆盖现有的项目目录。
pretrained bool/str True 是否从预训练模型开始训练,可以为模型路径。
optimizer str ‘auto’ 选择优化器,如 SGDAdamAdamW,或 auto 自动选择。
seed int 0 设置随机种子,以确保可复现的训练结果。
deterministic bool True 是否强制使用确定性算法,影响可复现性和速度。
single_cls bool False 是否将所有类别视为单一类别,适用于二分类任务。
classes list[int] None 训练时筛选指定类别的 ID。
rect bool False 是否进行矩形训练,以减少填充,提高效率。
multi_scale bool False 是否启用多尺度训练,动态调整 imgsz
cos_lr bool False 余弦学习率调度,逐渐调整学习率。
close_mosaic int 10 训练最后 N 轮禁用马赛克数据增强。
resume bool False 是否从上次保存的检查点恢复训练。
amp bool True 是否启用自动混合精度(AMP)训练,减少显存占用。
fraction float 1.0 训练数据集的子集比例,用于快速实验。
profile bool False 是否对 ONNX 和 TensorRT 速度进行剖析。
freeze int/list None 冻结模型的前 N 层或指定层,适用于迁移学习。
lr0 float 0.01 初始学习率,SGD=1E-2Adam=1E-3
lrf float 0.01 最终学习率占初始学习率的比例(lr0 * lrf)。
momentum float 0.937 SGD 动量因子或 Adam beta1
weight_decay float 0.0005 L2 正则化项,防止过拟合。
warmup_epochs float 3.0 预热轮数,逐步增加学习率。
warmup_momentum float 0.8 预热阶段的动量初始值。
warmup_bias_lr float 0.1 预热阶段的偏置学习率。
box float 7.5 边框损失权重。
cls float 0.5 分类损失权重。
dfl float 1.5 分布焦点损失权重。
pose float 12.0 姿态损失权重(用于姿态估计)。
kobj float 2.0 关键点对象性损失权重。
nbs int 64 损失归一化的标称批量大小。
overlap_mask bool True 目标遮罩是否合并训练,影响重叠目标。
mask_ratio int 4 分割掩码的下采样率。
dropout float 0.0 分类任务中防止过拟合的 dropout 率。
val bool True 训练过程中是否进行验证。
plots bool False 是否生成训练和验证结果的可视化图表。

二、推理参数

推理脚本:

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

可视化参数:

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

三、验证参数

验证参数:

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

四、导出参数

导出脚本:

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

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐