Skip to content

v1.1.0

Compare
Choose a tag to compare
@ccssu ccssu released this 03 Dec 06:40
· 77 commits to main since this release
62dea0e

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
03 支持使用 wandb 对实验跟踪和可视化功能 使用coco128数据集 对 wandb 集成可视化测试示例
操作指南
04 oneflow_hub_support_pilimage 操作指南
05 为每个batch的compute_loss部分减少一次h2d和cpu slice_update操作 pr: optim_slice_update_in_compute_loss
06 优化 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 文档更新

发布了的文章

持续新增中...

已开发待发布的教程和源码解读

FAQ

训练前,请先阅读 本文的FAQ总结的一些常见问题 !(这可以节省您的时间)

注意⚠️:

  • oneflow目前不支持windows平台
  • 目前OneFlow 需要安装 nightly 版本,等OneFlow后续新版本发布后可以安装稳定版。
  • --batch 必须是GPU数量的整数倍。
  • ddp模式训练时,GPU 0 将比其他GPU占用略多的内存,因为它维护EMA并负责检查点等。