1. 程式人生 > >ParseNet原始碼訓練和分析

ParseNet原始碼訓練和分析

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,簡單看了一下,後續有時間再詳細分析