ParseNet原始碼訓練和分析
阿新 • • 發佈:2019-02-01
ParseNet
編譯Caffe
直接從github上clone下來程式碼
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout fcn
注意:記得切換到fcn分支,不然會出現eval_type未定義
的問題
存在的問題:cudnn6.0無法使用,於是在編譯的時候關掉了cudnn.
訓練
先製作資料集——訓練集增強的VOC2012,得到完整的資料集後,不需要進行resize,因為parsenet的batch-size設定的是1, iter_size設定為8.
訓練集數目為10582,驗證集為1449,手動轉化為lmdb,進行訓練即可.
其中訓練集的收集在我的deeplab中有介紹.
訓練過程中視訊記憶體佔用為2.0g
結果
原論文給出的結果是在VOC val上為69.55 mIoU.
迭代20000次,結果如下:
I0305 01:53:47.707645 10625 solver.cpp:356] Iteration 10000, Testing net (#0)
I0305 01:55:48.532131 10625 solver.cpp:428] Test net output #0 evaluation: per_pixel_acc = 0.927039
I0305 01:55:48.532177 10625 solver.cpp:430] Test net output #0 evaluation: per_label_acc = 0.803155
I0305 01:55:48.532181 10625 solver.cpp:432] Test net output #0 evaluation: iou_acc = 0.694358
I0305 01:55:48.532186 10625 solver.cpp:434] Test net output #0 evaluation: weighted_iou_acc = 0.871142
原始碼解讀
原始碼在caffe的基礎上引入了filter_stride(atrous), L2-norm Layer, evaluation layer.
主要是Evaluation Layer,簡單看了一下,後續有時間再詳細分析