1. 程式人生 > >py-faster-rcnn+VGG_CNN_M_1024訓練自己資料需要修改的引數小記

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大且不收斂!