相关配置环境

拉取官方最新的镜像(docker pull ultralytics/yolov5)
以及代码(git clone https://github.com/ultralytics/yolov5)

torch 1.10.1+cu102 CUDA:0 (Tesla V100-PCIE-32GB, 32510MiB)


相关问题

我是自定义数据集一共多达4.5w张,图像大小大多为3M(4000*3000)甚至更高。因为使用的是V100 32G显卡,本着batch_size越大训练越快的原则直接把batch_size设置为最大。

python train.py --batch-size 320 --data data/test.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt

1、batch_size设置最大后发现,训练特别慢,且显卡使用率长时间为0,偶尔会有使用率。结合打印日志发现,当完成一部分训练进行百分比展示时显卡使用率也会有。因此判断显卡未使用时是在进行io操作,在读取缓存数据,因为batch_size设置过大所以缓存特慢,当缓存完成才会进行训练,所以显存也会偶尔有使用率。(百度查询查到别人的分析:是exchange存取数据的问题,那个应该是个差不多网络存储的服务器,由于本身数据体积就比较大,程序在跑的时候数据读写速度跟不上,gpu就一直在等数据读进来)确定完原因开始在ylov5官方lssuse查找相关解决方法,作者提供了训练变快的方法


自己也在网上找了一些训练加速的方法:

  • –workers 线程数量默认8(改成0或者增加)
  • –noval 每个epoch不进行评估
  • –cache 使用缓存训练
  • 使用DDP (python -m torch.distributed.launch --nproc_per_node 2 train.py)

2、最开始我一直在workers这个参数以及DDP进行测试,发现并没有提升太多,还是很慢。后面就把这四点进行结合,在DDP上进行缓存训练、不评估进行多线程。问题又来了,因为数据量过大,在DDP上进行RAM缓存时时间会超时NCCL设置的1800000(半个小时),保存本地disk缓存也是一样。自己排查觉得两部分解决这个问题:1.修改NCCL超时时间 2.加快缓存速度从而减少时间。因为需要快速训练所以并没有去解决

python -m torch.distributed.run --nproc_per_node 2 train.py --batch-size 320 --data data/test.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt --noval --workers 32 --cache

3、当DDP行不通,就想着使用最原始的python train.py的方式去使用缓存训练,没想到一试竟然成功了。RAM和disk都可以,ram缓存到内存需要有足够大的虚拟内存也就是启动docker镜像的时候加上–shm-size 256g这个参数,disk缓存本地本地有足够大的存储即可。

python train.py --batch-size -1 --data data/test.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt --workers 16 --cache disk
4.5w数据 309轮 训练时间:02:10

调试技巧

  1. 训练过程中发现batch-size并不是设置越大越快,测试发现batch-size=320和batch-size=128是一样的训练速度。 (来源网络:对于batch-size,有点玄学。理论是能尽量跑满显存为佳,但实际测试下来,发现当为8的倍数时效率更高一点。就是32时的训练效率会比34的高一点,这里就不太清楚原理是什么了,实际操作下来是这样。)
  2. workers也是一样,在镜像中workers不能设置过高会导致shm不够。我配置了–shm-size=256g能勉强最高使用32。测试发现使用32时算法并不进行卡着不执行,16会比8快三分之一左右
  3. 使用cache进行缓存训练是比一边加载一边训练快,所以不管数据多少都可以使用cache缓存循环会更快
  4. DDP分布式训练,在NCCL不超时的情况下理论上会更快(待测试)

关于yolov5训练大量数据存在的问题记录相关推荐

  1. YOLOV5训练数据集过程中特殊问题记录

    项目场景: yolov5训练GX数据集 问题描述: 运行train.py Traceback (most recent call last):File "/home/milk/yolov52 ...

  2. ubuntu+docker使用yolov5训练自己数据踩坑指南

    报错一: AssertionError: Label class 16 exceeds nc=1 in data/data.yaml. Possible class labels are 0-0 原因 ...

  3. yolov5训练自己的数据集,OpenCV DNN推理

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为4238字,预计阅读9分钟 前言 上一篇<OpenCV--自学笔记>搭建好了yolov5的环境,作为目标检测在应用中 ...

  4. 【目标检测】YOLOv5训练工具,简化训练准备过程

    目录 引流 前言 安装步骤 0. 环境配置 1. 下载项目 2. 安装项目 3.下载权重文件 操作步骤 After Training 引流 YOLOX算法的检测性能超过YOLOv5啦,所以推荐大家使用 ...

  5. 【深度学习】【Python】【Widerface数据集】 转VOC格式,VOC 转YOLOv5格式,YOLOv5训练WiderFace数据集,检查yolo labels对不对

    文章目录 Widerface数据集转VOC格式 VOC 转YOLO格式 数据集的imageslisttxt YOLOv5训练 检查yolo labels对不对 并行训练 Widerface数据集转VO ...

  6. YOLO-v5训练自己的数据+TensorRT推理部署(2)

    YOLO-v5训练自己的数据+TensorRT推理部署(2) 代码下载地址:下载地址 YOLO v5转TensorRT模型并调用 0.pt模型转wts模型 python3 gen_wts.py # 注 ...

  7. YOLO-v5训练自己的数据+TensorRT推理部署(1)

    YOLO-v5训练自己的数据+TensorRT推理部署(1) 代码下载地址:下载地址 YOLO v5在医疗领域中消化内镜目标检测的应用 YOLO v5训练自己数据集详细教程

  8. yolov5训练自己的数据

    组件知识笔记: yolov5组件笔记_jacke121的专栏-CSDN博客_yolov5深度可分离卷积 参考:使用YOLOv5训练自己的数据集_laovife的博客-CSDN博客_使用yolov5训练 ...

  9. yolov5使用教程训练our数据——手把手教你训练预测(以阿里天池比赛为例)

    玩转yolov5 前言 1.yolov5项目克隆和安装 1.1 代码下载 1.2 安装环境 1.3 下载预训练权重 1.4 安装测试 2.数据准备 2.1 数据形式 2.2 数据转换 2.3 转换结果 ...

最新文章

  1. Java线上问题排障:Linux内核bug引发JVM死锁导致线程假死
  2. 阻止保存要求重新创建表的更改
  3. PostgreSQL学习手册(客户端命令Ⅱ)
  4. linux下载哪个python版本-Linux安装python3.6
  5. lvs负载均衡—ldirectord(DR模式的健康检查)
  6. Jedis使用测试——连接本地及远程的Redis
  7. PAT甲级1012 (结构体,排序)
  8. IBM AIX创建lv
  9. ewebeditor高版本=5.50day
  10. 算法速学速用大辞典 pdf_随机梯度蒙特卡洛算法-重要性采样
  11. c51单片机音乐门铃C语言程序,89c51六首歌曲的音乐门铃程序
  12. 激光投影仪与普通投影仪有什么区别?应该怎么购买?
  13. UVa12304(计算几何中圆的基本操作)
  14. NVIDIA边缘端设备(nano、tx2、xavier等)查看安装的jetpack版本
  15. 电商平台订单号生成策略
  16. Windows11无法打开Windows安全中心(需要使用新应用打开此windowsdefender链接)
  17. 配色表和配色网站:获取好看的配色
  18. 字节跳动扣响搜索扳机
  19. PHP删除字符串中的空格和换行符终极方法
  20. perl和python各自擅长的领域

热门文章

  1. springboot jpa 实现复杂的sql 如 A and (B or C)
  2. vue中使用svg图片
  3. 微信Windows客户端版本无法打开小程序问题的解决
  4. 超星未来:让智能驾驶更简单! | 百万人学AI评选
  5. 使用云服务器被攻击了怎么办
  6. c语言 计算平均分
  7. MySQL函数计算24小时平均浓度对应的IAQI和AQI
  8. ArithmeticException算数异常
  9. 一款网易云音乐歌词制作软件
  10. 谷歌浏览器自带网页截图快捷键