【py-faster-rcnn】【训练自己数据】需要修改的参数小记

运行环境: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大且不收敛!

展开阅读全文

没有更多推荐了,返回首页