YOLOv3在训练自己数据集时的速度慢问题

YOLOv3以速度快著称,但是在训练自己的数据集时发现尽管在命令中同时开启了多块gpu,但速度仍旧很慢。

按照其他人的训练日志可以看出64batch的单gpu训练,每次迭代大约需要不到1秒

但是自己在训练时却需要好几个小时,首先想到的是自己的数据集是否图片分辨率太高,比较之后发现差不多,而且在开启多尺度训练(设置detector中的random=1)后问题并没有解决。

控制影响因素:GPU的数量、batchsize的大小之后发现程序似乎不是按照设置的那样在GPU上运行,并且GPU和batchsize对耗时的影响是叠加关系(batchsize=4时用时是=1时的大约4倍,开启3片GPU时不是并行而是串行(运行数据变为3倍,时间也随之变为3倍))

一大堆的尝试之后,发现问题存在于最初的darknet配置阶段,按照论文作者在项目YOLO: Real-Time Object Detection中的叙述,下载完darknet后就直接make了,实际上Makefile中的参数需要设置,GPU=1,cudnn=1,opencv=1,这样make之后再去跑训练程序,速度就很快了。

猜你喜欢

转载自blog.csdn.net/Jerry_Leo_liu/article/details/79971115