1. 程式人生 > >YOLOv3在訓練自己資料集時的速度慢問題

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之後再去跑訓練程式,速度就很快了。