当前位置:   article > 正文

YOLOv5全面解析教程⑥:模型训练流程详解_yolov5去掉预训练权重如何运行--weights

yolov5去掉预训练权重如何运行--weights

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 参数选项,具体「案例」如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/709270
推荐阅读
相关标签
  

闽ICP备14008679号