v1.1.0
one-yolov5 v1.1.0 发布
feature
01 完善代码仓库的示例文档
02 RTX 3090 FP32 YOLOv5s的训练速度提升了近20%,其它网络均有不同程度的加速
所有的优化都集中于 `bbox_iou_optim` 和 `multi_tensor_optimizer` 这两个扩展的 Flag,只要我们训练的时候打开这两个Flag就可以享受到 [消费级显卡的春天,RTX 3090 YOLOv5s单卡完整训练COCO数据集缩短11.35个小时](https://mp.weixin.qq.com/s/Qh3JCAaPox3TUB0a6Lb_ug) 这里提到的所有优化了。其他的运行命令和 One-YOLOv5 原版本没有变化,以 One-YOLOv5 在 RTX 3090 上使用 COCO 数据集训练 yolov5s 为例, 命令为:
python train.py --batch 16 --cfg models/yolov5s.yaml --weights '' --data coco.yaml --img 640 --device 0 --epoch 1 --bbox_iou_optim --multi_tensor_optimizer
单卡 | amp | epoch | gpu | batch | 网络结构文件 | time(min) |
---|---|---|---|---|---|---|
OneFlow | False | 1 | 1 | 8 | yolov5s.yaml | 14:53 |
PyTorch | False | 1 | 1 | 8 | yolov5s.yaml | 25:10 |
OneFlow | False | 1 | 1 | 16 | yolov5s.yaml | 12:11 |
PyTorch | False | 1 | 1 | 16 | yolov5s.yaml | 14:38 |
OneFlow | False | 1 | 1 | 8 | hub/yolov5x6.yaml | 1:26:22 |
PyTorch | False | 1 | 1 | 8 | hub/yolov5x6.yaml | 1:36:29 |
测试指令
# OneFlow & yolov5s.yaml:
python train.py --batch 16 --cfg models/hub/yolov5x6.yaml --weights '' --data coco.yaml --img 640 --device 0 --epoch 1 --bbox_iou_optim --multi_tensor_optimize
# PyTorch & yolov5s.yaml:
python train.py --batch 16 --cfg models/hub/yolov5x6.yaml --weights '' --data coco.yaml --img 640 --device 0 --epoch 1
# OneFlow & hub/yolov5x6.yaml
python train.py --batch 8 --cfg models/hub/yolov5x6.yaml --weights '' --data coco.yaml --img 640 --device 0 --epoch 1 --hyp data/hyps/hyp.scratch-high.y --noautoanchor --bbox_iou_optim --multi_tensor_optimizer
# PyTorch & hub/yolov5x6.yaml
python train.py --batch 8 --cfg models/hub/yolov5x6.yaml --weights '' --data coco.yaml --img 640 --device 0 --epoch 1 --hyp data/hyps/hyp.scratch-high.y --noautoanchor
04 oneflow_hub_support_pilimage
操作指南05 为每个batch的compute_loss部分减少一次h2d和cpu slice_update操作
pr: optim_slice_update_in_compute_loss06 优化 bbox_iou 函数和模型滑动平均部分,大幅提升训练性能
消费级显卡的春天,GTX 3090 YOLOv5s单卡完整训练COCO数据集缩短11.35个小时07 兼容FlowFlops,训练时可以展示模型的FLOPs
基于 Flowflops 详解深度学习网络的 FLOPs 和 MACs 计算方案08 模型权重发布ONNX版本,方便用户直接部署验证
bug fix
01 解决memory和loss显示错位问题
02 无法自动下载权重问题
03 修复单独运行yolo.py脚本ModuleNotFoundError
04 修复通过追加保存模型的方式
one-yolov5 文档更新
发布了的文章
- 0. one-yolov5特点解析
- 1. 消费级显卡的春天,GTX 3090 YOLOv5s单卡完整训练COCO数据集缩短11.35个小时
- 2. YOLOv5 网络结构解析
- 3. 如何准备yolov5模型训练数据
- 4. 快速开始
- 5. 从OneFlow Hub 加载YOLOv5
- 6. 测试时增强 (TTA)
- 7. 模型融合 (Model Ensembling)
- 8. 数据增强
- 9. 矩形推理
- 10. IOU深入解析
- 11. 模型精确度评估
- 12. 计算mAP用到的numpy函数
- 13. ONNX模型导出
- 14. train.py源码解读
持续新增中...
已开发待发布的教程和源码解读
- tutorial.ipynb
- tutorials/03_chapter/intro_to_wandb.md
- source_code_interpretation/augmentations.py
- source_code_interpretation/dataloaders.py
- source_code_interpretation/downloads.py
- source_code_interpretation/general.py
- source_code_interpretation/plots_py.md
- source_code_interpretation/callbacks_py.md
- source_code_interpretation/detect_py.md
- source_code_interpretation/val_py.md
- source_code_interpretation/utils/loss_py
FAQ
训练前,请先阅读 本文的FAQ总结的一些常见问题 !(这可以节省您的时间)
注意
- oneflow目前不支持windows平台
- 目前OneFlow 需要安装 nightly 版本,等OneFlow后续新版本发布后可以安装稳定版。
- --batch 必须是GPU数量的整数倍。
- ddp模式训练时,GPU 0 将比其他GPU占用略多的内存,因为它维护EMA并负责检查点等。