py-faster-rcnn+VGG_CNN_M_1024訓練自己數據需要修改的參數小記

運行環境:cpu

訓練圖片大小爲300*330,類別數11。

1.修改VGG_CNN_M_1024模型配置文件

1)solver.protxt文件

  • stepsize原先爲10000,根據需要更改。
2)train.protxt文件
  • “input-data”層的‘num_class’數值改爲11;
  • “rpn-data”層的feat_stride由原先的16改爲8;
  • “proposal”層的feat_stride也改爲8;
  • 'roi-data'層的‘num_class’數值改爲11;
  • roi_pool5層的spatial_scale改爲0.125(即1/8,與前面的feat_stride對應);
  • cls_score層的num_output數值改爲11(1+10);
  • bbox_pred層的num_output數值改爲44(11*4);
3)test.prototxt文件
  • cls_score層的num_output數值改爲11(1+10);
  • bbox_pred層的num_output數值改爲44(11*4);
  • roi_pool5層的spatial_scale改爲0.125;
  • proposal層的param_str: "'feat_stride': 8";
4)lib/fast_rcnn文件夾中的config.py文件
  • __C.TRAIN.SCALES = (300,) #原先爲600
  • __C.TRAIN.MAX_SIZE =330  #原先爲1000
  • __C.TRAIN.SNAPSHOT_ITERS = 自己想要的迭代次數,用於存儲中間結果。原先爲10000
  • __C.TEST.SCALES = (300,)#原先爲600
  • __C.TEST.MAX_SIZE = 330 #原先爲1000;
5)lib/rpn/generate_anchors.py
    generate_anchors(base_size=16, ratios=[0.5, 1, 2],scales=2**np.arange(3, 6)):
    改爲base_size=8, ratios=[0.5, 1, 2],scales=[8,12,16]):
6)lib/rpn/propsoal_layer.py
     原先anchor_scales = layer_params.get('scales', (8, 16, 32))#(8, 16, 32)應該就是2**np.arange(3, 6)
     所以改爲anchor_scales = layer_params.get('scales', (8, 12, 16))
7)lib/datasets/pascal_voc.py文件
     修改self._classes = ('__background__', # always index 0
                              '訓練的數據類別')
現在想到的就是這些,可能還有需要修改的地方。
大家如果看到我還有遺漏未改的地方殷切希望幫我指出來,畢竟參數對訓練太重要了!!!

   測試模型時需要改的文件

1、faster_rcnn_test.pt

cls_score層的num_output改爲11;

bbox_pred層的num_output改爲44;

上面劃掉的句子不能這麼改,否則會導致訓練時loss大且不收斂!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章