SSD訓練自己的資料集
詳細參考 Github上SSD教程:https://github.com/weiliu89/caffe/tree/ssd
blog.csdn.net/lk123400/article/details/61191239
測試及視覺化參考http://blog.csdn.net/jesse_mx/article/details/52965281
http://www.cnblogs.com/EstherLjy/p/6863890.html
檢測目標,輸出文字資訊:
./.build_release/examples/ssd/ssd_detect.bin models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt models/VGGNet/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_10000.caffemodel /home/wjt/my_work/ssd/caffe/data/test_image/test_image.txt
在影象上標註目標:
python examples/ssd/plot_detections.py /home/wjt/my_work/ssd/caffe/data/test_result/test_result.txt /home/wjt/my_work/ssd/caffe/ --labelmap-file data/VOC0712/labelmap_voc.prototxt --save-dir data/test_result --visualize-threshold 0.6
注:注意路徑設定
問題彙總:
1. No such file
./data/VOC0712/create_list.sh 出錯
原因及解決方法:資料集位置沒放置正確,將資料集按照源指令碼檔案說明的位置(/home/data/)放置,或者修改指令碼檔案中
2. ImportError:No module named _caffe (或者caffe.proto)
./data/VOC0712/create_data.sh原因及解決方法:環境變數中python路徑沒有設定正確,要將PYTHONPATH設定為SSD中caffe目錄下的python,修改“~./bashrc”檔案,加上python路徑,並source一下即可解決
3. checked failed: num_test_image_ <= names_.size() (4952 vs. 117)
原因及解決方法:ssd_pascal.py檔案中num_test_image引數沒有修改,將其修改為實際的117,同時還要修改的引數為num_classes,參考教程blog.csdn.net/lk123400/article/details/61191239
4. 訓練時loss=nan
原因及解決方法:由ssd_pascal.py執行生成的solver.prototxt中顯示的學習率base_lr=0.001,在ssd_pascal.py檔案中將base_lr設定為0.0001,loss變為正常數值
5. 中斷訓練再次訓練時,顯示 libcudart.so.8.0: canot open chared object file: No such file or directory
sudo ldconfig /usr/local/cuda/lib64
6. 訓練時出現 Check fialed: error == cudaSuccess(2 vs. 0)out of memory
原因及解決方法:GPU視訊記憶體被程式佔用或者之前的程序沒有正常結束,佔用著GPU視訊記憶體,使得用GPU訓練時視訊記憶體不足,用nvidia-smi命令檢視佔用視訊記憶體的程序PID,用kill -9 [PID]強制殺死程序。