YOLO系列学习三(训练):
2026/6/12 11:21:31 网站建设 项目流程

!!!如何让训练跑的更快:

一.训练效率:即下面四种硬件资源的利用率

二.两个高效率训练的典型特征:

-cuda的利用率又高又稳

-所有资源利用率都不到100%

三.影响GPU训练效率的4个选项:

1.imgsz选项--->缩放

注:imgsz必须是32的倍数

例如:imgsz=640,就是将图片缩放到一个640×640的正方形里,图片的宽高比例不变

到目前为止的训练的完整流程:

重点:

-imgsz越小,训练越快,但是也是有上限的,并且还与训练效果有关

-Imgsz设置成多少比较合适:一般保持默认的640就行

-比较建议调整的情况有两种:

1.图片尺寸很大,目标一丁点---->imgsz调高一点

2.图片尺寸普遍比640小---->保持原本(接近)的32倍的imgsz

2.batch选项---->批次

一个批次里图片的数量:批量(batch size)

代码里将"batch=2",一次投喂两张图片

硬件条件会限制batch的上限

batch=2 时间:大概42s

batch=8 时间:大概22s

(1)batch对显存占用和训练效率的影响:

-batch太小,显存占用低,训练效率低

-随着batch越调越高,显存占用会变高,训练效率也会变高,但是效率的提升是有限的

-尤其是显存占用快满的时候,效率反而会变差

-batch再高的话,甚至会开始报错

(2)接近最快的batch一般是在一个区间里,我们只需要将batch调整到这个区间就行

方法:将"batch=-1",YOLO就会自动帮你找一个相对合适的batch,调到能差不多接近最快就行

3.cache选项---->缓存

默认cache=False,即不适用缓存

对应cache="ram",即使用内存作为缓存

缓存的核心思想:如果一个东西你经常用,就放到近一点的地方

所有训练集图片都以文件的形式存储下硬盘里,每次训练时,都需要将图片从硬盘加载到内存里,再进行后续操作

cache="ram",提前加载,提前缩放(大概率可以提高训练的效率)

缺点:所有缩放后的图片都会放到 内存里,所以内存要足够大,才能容纳这些图片

4.workers选项---->打包

细节:

-每一轮的每个批次都是随机打包的

-在把每批次的图片拼到一个数据块之前,通常会先随机修改一下

数据增强(修改)----随机放大或缩小一些,接着随机旋转一点角度,再调一调颜色,再从中间裁剪一下

一个批次完整的打包流程:

解决办法:多开几个进程打包:

"worker=1",时间:大概12s

worker每加一,内存就要多消耗一倍

5.邪修路线:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询