Python影像辨識筆記(九之二):關於YOLOv3的一些心得
9 min readAug 26, 2019
1.Windows環境中,使用純CPU訓練,defaults.py中的batch、epoch、learning rate(lr)都不可以調太高。(會因為記憶體不足而造成當機問題產生)
batch=1、epoch=1、learning rate=1e-4,電腦不會當機(CPU為i5-2400)#20190826-20:24更新
當機問題已經解決。將width*heigth從608*608改成416*416,就可以提高batch size和epoch。yolo3.cfg檔案中,將width和height都調整成416defaults.py中的batch可以提高到8、epoch=4#20190827-19:48更新剛開始訓練時Learning rate可以大一點(0.1~0.01),後期Learning rate要小(如果出現loss NaN的話)loss產生NaN情形時,降低learning rate和batch size#20190827-19:52更新高學習率有較快的學習速度,但是準確度較低#20190918更新在Jetson TX2訓練時,batch和epoch都可以提高到16,且不會當機
2.要使用GPU訓練時,最好用性能較高的顯示卡,網路上看到大多使用GTX1080 Ti在跑訓練(以我自己的電腦為例,GTX 750 Ti,都會出現GPU記憶體不足的錯誤情形)
使用Jetson TX2來訓練效果不錯
3.圖片的標記需要使用labelimg來進行標記,會產出xml檔案(VOC格式,需要將VOC格式的xml文件轉換成YOLO格式的txt文件),或txt檔案(YOLO格式)
!!!!非常重要!!!!
###在開啟labelimg標記前必須先將軟體所在資料夾中的
data/predefined_classes.txt修改成我們需要的名稱,否則後續的標記都是錯誤的
###標記完的.txt檔案要注意裡面的object-class為0才對(假設只有1個class的話)
!!!!非常重要!!!!labelimg標記流程:(1)下載圖片
使用Python批次下載Google圖片
(2)開啟labelimg
選擇Open Dir,開啟圖片資料夾
選擇Change Save Dir,設定.txt檔案存檔的位置…