workers与batch-size的常见问题
很多新手在使用yolov5训练模型的时候会出现爆内存和爆显存问题,一般就是由于worker和batch_size参数设置过大有关,下面是解决的方法。
一、workers
train.py中关于workers设置代码如下:
parser.add_argument('--workers', type=int, default=8,
help='maximum number of dataloader workers')
workers是指数据装载时cpu所使用的线程数,默认为8,但是按照默认的设置来训练往往会导致我们的CPU爆内存,会导致其他进程进行关闭(例如浏览器),我的电脑设置为4是刚刚可以利用完内存,可以看下图,如果我没提交的>虚拟内存+实际内存,内存就会被完全占用。
二、batch-size
parser.add_argument('--batch-size', type=int, default=4,
help='total batch size for all GPUs')
含义:batch-size设置多少就表示一次性将多少张图片放在一起训练,就是一次往GPU哪里塞多少张图片了,如果设置的太大会导致爆显存,一般设置为8的倍数,我这里设置的是4,会一次性训练4张图片。