• YOLOv5全面解析教程⑥:模型训练流程详解


    e46540ddb8ebf98f4ce48a72f398874e.jpeg


    作者 | Fengwen、BBuf
     

    欢迎Star、试用One-YOLOv5:

    https://github.com/Oneflow-Inc/one-yolov5

    1

    结构项目预览

    77b3d1d56b0ae96e138b93266eb4f8d8.png
     

    2

    安装

    1. git clone https://github.com/Oneflow-Inc/one-yolov5  # clone
    2. cd one-yolov5
    3. pip install -r requirements.txt  # install

    3

    训练

    两种训练方式

    1. 带权重训练 

    $ python path/to/train.py --data coco.yaml --weights yolov5s --img 640

    2. 不带权重训练 

    $ python path/to/train.py --data coco.yaml --weights '' --cfg yolov5s.yaml --img 640

    单GPU训练

    $ python train.py  --data coco.yaml --weights yolov5s --device 0

    多GPU训练

    $ python -m oneflow.distributed.launch --nproc_per_node 2 train.py --batch 64 --data coco.yaml --weights yolov5s --device 0,1

    注意:
     

    • --nproc_per_node  指定要使用多少GPU。举个例子:在上面多GPU训练指令中它是2。

    • --batch 是总批量大小。它将平均分配给每个GPU。在上面的示例中,每GPU是64/2=32。

    • --cfg : 指定一个包含所有评估参数的配置文件。

    • 上面的代码默认使用GPU 0…(N-1)。使用特定的GPU?可以通过简单在 --device 后跟指定GPU来实现。「案例」,在下面的代码中,我们将使用GPU 2,3。

    $ python -m oneflow.distributed.launch --nproc_per_node 2 train.py --batch 64 --data coco.yaml --cfg yolov5s.yaml --weights '' --device 2,3

    恢复训练

    如果你的训练进程中断了,你可以这样恢复先前的训练进程。

    1. # 多卡训练.
    2. python -m oneflow.distributed.launch --nproc_per_node 2 train.py --resume

    你也可以通过 --resume 参数指定要恢复的模型路径。

    1. # 记得把 /path/to/your/checkpoint/path  替换为你要恢复训练的模型权重路径
    2. --resume /path/to/your/checkpoint/path

    使用SyncBatchNorm

    SyncBatchNorm可以提高多gpu训练的准确性,但会显著降低训练速度。它仅适用于多GPU DistributedDataParallel 训练。建议最好在每个GPU上的样本数量较小(样本数量<=8)时使用。

    要使用SyncBatchNorm,只需将添加 --sync-bn 参数选项,具体「案例」如下:

  • 相关阅读:
    Java设计模式-结构性设计模式(代理设计模式)
    文件操作的常用技巧(持续更新)
    css第十一课:浮动属性
    动手学习深度学习 09:循环神经网络
    面对有挑战的事情
    阿里云效自动构建python自动测试脚本
    java maven pom application 生产prod/开发dev/测试test
    【VTK.js】学习笔记一:搭建环境,实现官网例子
    JavaScript涉及二进制的转换
    凉鞋的 Godot 笔记 105. 第一个通识:编辑-测试 循环
  • 原文地址:https://blog.csdn.net/OneFlow_Official/article/details/129434477