yolov5 train.py参数解释
YOLOv5 的 train.py 里这些参数控制了训练过程的方方面面。下面我把它们分成几类,逐一解释每个参数的作用,方便你理解。

1. 模型与数据配置
• --weights:初始权重文件路径,默认 yolov5s.pt。可以指定预训练模型(如 yolov5s.pt)进行迁移学习,也可以设为空字符串 '' 从零开始训练。
• --cfg:模型结构配置文件(model.yaml)的路径。如果你不想用预训练权重,而是想从头搭建模型,可以通过这个参数指定。通常与 --weights '' 一起使用。
• --data:数据集配置文件路径,例如 data/coco128.yaml。里面定义了训练/验证图片路径、类别数量和名称等信息。
• --hyp:超参数配置文件路径,例如 data/hyp.scratch.yaml。包含学习率、动量、数据增强强度等所有超参数。
• --single-cls:把所有类别视为一个类别。当你只关心“有没有目标”而不关心类别时使用。

2. 训练过程控制
• --epochs:训练的总轮数,默认 300。
• --batch-size:一次迭代送入网络的图片数量,默认 16。受显存限制,越大越稳定但占用显存越多。
• --img-size:训练和测试时输入图片的尺寸,默认 [640, 640]。可以是单个值(例如 640),也可以分别指定训练和测试尺寸。
• --rect:矩形训练。每批图片保持各自的长宽比,只做最小填充,能加快训练并减少冗余计算。
• --resume:从最近一次中断的训练中恢复。直接 --resume 会自动找最新的检查点,也可以指定 .pt文件路径。
• --nosave:仅保存最后一个 epoch 的模型权重,不保存中间结果,可节省磁盘空间。
• --notest:只在最后一个 epoch 进行测试,中间的 epoch 不测试,可以加快训练。
• --save_period:每隔多少个 epoch 保存一次模型权重,-1 表示只按默认保存(通常最后和最好的)。

3. 优化器与学习率
• --adam:使用 Adam 优化器,否则默认使用 SGD 带动量。
• --linear-lr:使用线性学习率衰减,否则默认是余弦退火衰减方式。
• --label-smoothing:标签平滑系数,默认为 0。设置一个很小的值(如 0.01)可以防止过拟合,让模型不要对标签过于“自信”。

4. 数据加载与增强
• --cache-images:将图片缓存在内存或磁盘,减少反复读图的 IO 时间,加快训练,但会占用更多系统内存。
• --image-weights:用加权图像采样,根据验证集上表现差的图像会被更频繁地训练,相当于“针对难例训练”。
• --multi-scale:多尺度训练,图片尺寸在每个 batch 会随机变化 ±50%,提高模型对不同尺度的鲁棒性。
• --quad:四通道数据加载器,会在拼接图片时把 4 张图拼成一个大正方形,某些情况下可提高精度(搭配特定的训练策略)。
• --noautoanchor:禁用自动锚框检查。YOLOv5 会根据数据集自动调整锚框尺寸,如果不希望它修改,就加上这个参数。

5. 硬件与分布式训练
• --device:指定训练设备,如 0 表示第一块 GPU,0,1,2,3 多卡训练,cpu 使用 CPU。
• --workers:数据加载的进程数,默认 0 表示只使用主进程。增大 workers 可加速数据加载,一般设为 CPU 核心数或 GPU 数量的 4 倍。
• --sync-bn:同步批归一化,只有多卡分布式训练(DDP 模式)时有效,能让 BN 统计跨 GPU 同步,提升精度。
• --local_rank:分布式训练的进程编号,用户不要手动修改,由启动脚本自动传入。

6. 保存路径与日志追踪
• --project:训练结果保存的根目录,默认 runs/train。
• --name:本次实验的名称,保存时会放在 project/name 下,默认是 exp。
• --exist-ok:如果保存的目录已经存在,不会自动新建带编号的文件夹(如 exp1),而是直接覆盖,常用于重跑某个实验。

7. Weights & Biases(W&B)集成
这些参数用于连接 W&B 平台做实验管理和可视化的,本地训练一般可忽略。
• --entity:你的 W&B 团队或用户名。
• --upload_dataset:将数据集上传为 W&B 的 artifact 版本管理。
• --bbox_interval:每隔几个 epoch 上传一次带有边界框的图片到 W&B,默认为 -1 表示不上传。
• --artifact_alias:使用的 W&B 数据集 artifact 的别名,默认为 latest。

8. 其他高级选项
• --evolve:超参数进化搜索。开启后会进行多次训练,自动寻找最优超参数组合。
• --bucket:谷歌云存储的存储桶名称,用于云端保存模型或数据,本地训练基本用不到。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)