YOLOv8参数解释

任务设置

  • task: 任务类型,可以是检测 (detect)、分割 (segment)、分类 (classify)、姿态估计 (pose)。
  • mode: 模式,可以是训练 (train)、验证 (val)、预测 (predict)、导出 (export)、追踪 (track)、基准测试 (benchmark)。

训练设置

  • model: 模型文件路径,如 yolov8n.ptyolov8n.yaml
  • data: 数据文件路径,如 coco8.yaml
  • epochs: 训练的轮数。
  • time: 训练时间(小时),如果提供此项将覆盖 epochs 设置。
  • patience: 早停的轮数,即在无显著改进时等待的轮数。
  • batch: 每批图像数量,-1 表示自动批量大小。
  • imgsz: 输入图像的大小,对于训练和验证模式是整数,对于预测和导出模式是列表 [宽,高]
  • save: 是否保存训练检查点和预测结果。
  • save_period: 每 x 轮保存一次检查点(小于1则禁用)。
  • cache: 是否使用缓存进行数据加载,选项有 TrueramdiskFalse
  • device: 运行设备,如 cuda device=0device=0,1,2,3device=cpu
  • workers: 数据加载的工作线程数量(每个 DDP 排列)。
  • project: 项目名称。
  • name: 实验名称,结果保存到 project/name 目录。
  • exist_ok: 是否覆盖现有实验。
  • pretrained: 是否使用预训练模型,可以是布尔值或模型权重文件路径。
  • optimizer: 优化器类型,选项包括 SGDAdamAdamaxAdamWNAdamRAdamRMSPropauto
  • verbose: 是否打印详细输出。
  • seed: 随机种子以确保结果可复现。
  • deterministic: 是否启用确定性模式。
  • single_cls: 是否将多类别数据作为单类别训练。
  • rect: 如果模式为 train,则进行矩形训练;如果模式为 val,则进行矩形验证。
  • cos_lr: 是否使用余弦学习率调度器。
  • close_mosaic: 最后几轮禁用马赛克增强(0表示禁用)。
  • resume: 是否从上一个检查点恢复训练。
  • amp: 自动混合精度训练,选项包括 TrueFalseTrue 表示运行 AMP 检查。
  • fraction: 用于训练的数据集比例(默认为 1.0,即所有图像)。
  • profile: 是否在训练期间记录 ONNX 和 TensorRT 的速度。
  • freeze: 冻结前 n 层,或冻结特定层的索引列表。
  • multi_scale: 是否在训练期间使用多尺度。
分割设置
  • overlap_mask: 训练期间掩码是否重叠(仅分割训练)。
  • mask_ratio: 掩码下采样比例(仅分割训练)。
分类设置
  • dropout: 使用 dropout 正则化(仅分类训练)。

验证/测试设置

  • val: 训练期间是否验证/测试。
  • split: 验证使用的数据集分割,可以是 valtesttrain
  • save_json: 是否将结果保存为 JSON 文件。
  • save_hybrid: 是否保存标签的混合版本(标签 + 额外预测)。
  • conf: 检测的对象置信度阈值(默认 0.25 预测,0.001 验证)。
  • iou: NMS 的 IoU 阈值。
  • max_det: 每张图像的最大检测数。
  • half: 是否使用半精度(FP16)。
  • dnn: 是否使用 OpenCV DNN 进行 ONNX 推理。
  • plots: 在训练/验证期间是否保存图表和图像。

预测设置

  • source: 图像或视频的源目录。
  • vid_stride: 视频帧率步幅。
  • stream_buffer: 是否缓冲所有流媒体帧(True)或返回最近的帧(False)。
  • visualize: 是否可视化模型特征。
  • augment: 是否对预测源应用图像增强。
  • agnostic_nms: 是否使用类别无关的 NMS。
  • classes: 过滤结果的类别,如 classes=0classes=[0,2,3]
  • retina_masks: 是否使用高分辨率分割掩码。
  • embed: 返回特定层的特征向量/嵌入。

可视化设置

  • show: 如果环境允许,是否显示预测图像和视频。
  • save_frames: 是否保存预测的单个视频帧。
  • save_txt: 是否将结果保存为 .txt 文件。
  • save_conf: 是否将结果与置信度分数一起保存。
  • save_crop: 是否保存带有结果的裁剪图像。
  • show_labels: 是否显示预测标签,如 person
  • show_conf: 是否显示预测置信度,如 0.99
  • show_boxes: 是否显示预测边框。
  • line_width: 边框线的宽度,如果为 None,则按图像大小缩放。

导出设置

  • format: 导出格式,可选项见 https://docs.ultralytics.com/modes/export/#export-formats
  • keras: 是否使用 Keras。
  • optimize: TorchScript 优化以适应移动设备。
  • int8: CoreML/TF INT8 量化。
  • dynamic: ONNX/TF/TensorRT 动态轴。
  • simplify: ONNX 模型简化。
  • opset: ONNX opset 版本。
  • workspace: TensorRT 工作空间大小(GB)。
  • nms: CoreML 添加 NMS。

超参数设置

  • lr0: 初始学习率。
  • lrf: 最终学习率(lr0 * lrf)。
  • momentum: SGD 动量/Adam beta1。
  • weight_decay: 优化器权重衰减。
  • warmup_epochs: 热身轮数(可以是小数)。
  • warmup_momentum: 热身初始动量。
  • warmup_bias_lr: 热身初始偏置学习率。
  • box: 边框损失增益。
  • cls: 分类损失增益(按像素缩放)。
  • dfl: DFL 损失增益。
  • pose: 姿态损失增益。
  • kobj: 关键点目标损失增益。
  • label_smoothing: 标签平滑(比例)。
  • nbs: 名义批量大小。
  • hsv_h: 图像 HSV 色调增强(比例)。
  • hsv_s: 图像 HSV 饱和度增强(比例)。
  • hsv_v: 图像 HSV 亮度增强(比例)。
  • degrees: 图像旋转(±度)。
  • translate: 图像平移(±比例)。
  • scale: 图像缩放(±增益)。
  • shear: 图像剪切(±度)。
  • perspective: 图像透视(±比例),范围 0-0.001
  • flipud: 图像上下翻转(概率)。
  • fliplr: 图像左右翻转(概率)。
  • bgr: 图像通道 BGR(概率)。
  • mosaic: 图像马赛克(概率)。
  • mixup: 图像混合(概率)。
  • copy_paste: 分割复制粘贴(概率)。
  • auto_augment: 分类的自动增强策略(randaugmentautoaugmentaugmix)。
  • erasing: 分类训练期间随机擦除的概率(0-0.9),0 表示不擦除,必须小于 1.0
  • crop_fraction: 分类的图像裁剪比例(0.1-1),1.0 表示不裁剪,必须大于 0

自定义配置

  • cfg: 覆盖 defaults.yaml 的配置文件路径。

追踪器设置

  • tracker: 追踪器类型,选项包括 botsort.yamlbytetrack.yaml

  • cfg: 用于覆盖 defaults.yaml 的配置文件路径。

追踪器设置

  • tracker: 追踪器类型,选项包括 botsort.yamlbytetrack.yaml

这些参数配置了 YOLOv8 模型的训练、验证、预测、导出和其他操作的细节。通过调整这些参数,可以定制 YOLOv8 模型以适应特定任务和数据集。

### YOLO中的早停机制 在深度学习领域,早停(Early Stopping)是一种常用的正则化技术,用于防止模型过拟合。通过监控验证集上的性能指标,在检测到模型性能不再提升时停止训练过程。对于YOLO(You Only Look Once)目标检测框架而言,虽然其主要关注的是快速和高效的实时对象检测能力,但在实际训练过程中仍然可以引入早停机制来优化模型表现。 #### 实现方式 通常情况下,早停可以通过设置特定的回调函数或者脚本来完成。例如,在基于PyTorch或TensorFlow/Keras构建的YOLO版本中,开发者可以在训练循环中加入条件判断逻辑以实现这一功能: ```python import torch from torch.utils.data import DataLoader class EarlyStopping: def __init__(self, patience=7, delta=0): self.patience = patience self.delta = delta self.counter = 0 self.best_score = None self.early_stop = False def __call__(self, val_loss): score = -val_loss if self.best_score is None: self.best_score = score elif score < self.best_score + self.delta: self.counter += 1 if self.counter >= self.patience: self.early_stop = True else: self.best_score = score self.counter = 0 ``` 上述代码片段展示了一个简单的`EarlyStopping`类定义[^2]。该类允许用户指定耐心参数(patience),即连续多少次未观察到改进前不会中断训练;以及最小显著变化量(delta),用来判定新记录是否构成有效改善。 当使用命令行工具如 `train_voc.cmd` 开始训练时,也可以手动调整配置文件内的超参设定以便支持类似的策略[^1]。 #### 应用场景 - **减少计算资源浪费**:如果网络已经在测试数据上达到饱和状态,则继续迭代只会增加时间成本而无益于最终效果。 - **提高泛化能力**:适当提前结束可能帮助避免因过度适应训练样本而导致的一般化下降问题。 需要注意的是,并非所有的YOLO变体都内置了这种特性,因此有时需依赖外部库或是自定义修改源码才能启用它。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值