Bootstrap

YOLO5训练参数解析

YOLO5训练参数解析

下面是一个表格,列出了所有常见参数及其含义:

参数类型默认值说明
--weightsstrROOT / "yolov5s.pt"初始权重文件路径
--cfgstr""模型配置文件路径
--datastrROOT / "data/coco128.yaml"数据集配置文件路径
--hypstrROOT / "data/hyps/hyp.scratch-low.yaml"超参数配置文件路径
--epochsint100训练总轮数
--batch-sizeint16所有 GPU 上的总批量大小,-1 表示自动批量大小
--imgsz, --img, --img-sizeint640训练和验证图像的大小(像素)
--rectstore_trueFalse使用矩形训练
--resumenargs="?"False继续最近的训练,如果不指定则从头开始训练
--nosavestore_trueFalse仅保存最终检查点
--novalstore_trueFalse仅在最后一个轮次验证
--noautoanchorstore_trueFalse禁用自动锚点
--noplotsstore_trueFalse不保存绘图文件
--evolveint300 (可选)演化超参数的代数
--evolve_populationstrROOT / "data/hyps"加载超参数种群的位置
--resume_evolvestrNone从最后一代恢复演化
--bucketstr""gsutil 存储桶
--cachestrram (可选)图像缓存到内存或磁盘
--image-weightsstore_trueFalse使用加权图像选择进行训练
--devicestr""CUDA 设备,如 00,1,2,3cpu
--multi-scalestore_trueFalse变更图像大小 +/- 50%
--single-clsstore_trueFalse将多类别数据作为单类别进行训练
--optimizerstrSGD优化器选择 (SGD, Adam, AdamW)
--sync-bnstore_trueFalse使用 SyncBatchNorm,仅在 DDP 模式下可用
--workersint8最大数据加载器工作线程数(在 DDP 模式下每 RANK)
--projectstrROOT / "runs/train"保存结果的项目路径
--namestrexp保存结果的项目名称
--exist-okstore_trueFalse允许存在的项目/名称,不递增
--quadstore_trueFalse使用四边形数据加载器
--cos-lrstore_trueFalse使用余弦学习率调度器
--label-smoothingfloat0.0标签平滑的 epsilon 值
--patienceint100提前停止的耐心(没有改进的轮次)
--freezenargs="+"[0]冻结的层(如:backbone=10first3=0 1 2
--save-periodint-1每 x 轮保存检查点(如果 < 1 则禁用)
--seedint0全局训练种子
--local_rankint-1自动 DDP 多 GPU 参数,不修改
--entitystrNone实体
--upload_datasetnargs="?"False上传数据集,“val” 选项
--bbox_intervalint-1设置边界框图像记录间隔
--artifact_aliasstrlatest使用数据集工件的版本

以下是几个 train.py 命令的示例,并附上解释:

1. 基本训练命令

python train.py --weights yolov5s.pt --cfg yolov5s.yaml --data coco128.yaml --epochs 50 --batch-size 16 --imgsz 640

解释:使用预训练权重 yolov5s.pt 训练模型,配置文件为 yolov5s.yaml,数据集为 coco128.yaml,训练轮数为 50,批量大小为 16,图像尺寸为 640x640。

要启用提前停止(Early Stopping),可以使用 --patience 参数。提前停止可以在训练过程中监控验证集上的性能指标,如果在指定的轮次内没有看到改进,训练将提前终止,从而防止过拟合。

2.提前停止的训练命令示例

python train.py --weights yolov5s.pt --data coco128.yaml --epochs 100 --batch-size 16 --imgsz 640 --patience 10

解释

  • --weights yolov5s.pt:使用预训练权重 yolov5s.pt 作为初始权重。
  • --data coco128.yaml:指定数据集配置文件。
  • --epochs 100:设置训练的总轮次为 100。
  • --batch-size 16:设置批量大小为 16。
  • --imgsz 640:设置训练和验证图像的尺寸为 640x640。
  • --patience 10:启用提前停止机制,如果在 10 个轮次内没有看到验证集上的性能改进,则停止训练。

注意:YOLOv5 的训练脚本默认会进行这种监控,所以使用 --patience 参数时,你通常不需要进行额外的设置。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;