faster rcnn默认有三种网络模型 ZF(小)、VGG_CNN_M_1024(中)、VGG16 (大)
训练图片大小为500*500,类别数1。
修改VGG_CNN_M_1024模型配置文件
1)train.protxt文件 input-data层的num_class数值由21改为2; roi-data层的 num_class数值由21改为2; cls_score层的num_output 数值由21改为2(1+1); bbox_pred 层的 num_output 数值由84改为8(2*4); 2)test.prototxt文件 cls_score层的 num_output 数值由21改为2(1+1); bbox_pred层的num_output数值由84改为8(2*4); 3)lib/datasets/pascal_voc.py文件 修改self._classes = ('__background__', '训练的数据类别')
测试模型时需要改的文件faster_rcnn_test.pt
cls_score层的num_output数值由21改为2;
bbox_pred层的num_output数值由84改为8;
cache问题
在重新训练新的数据之前将cache删除
1) py-faster-rcnn/output 2) py-faster-rcnn/data/cache
超参数
py-faster-rcnn/models/pascal_voc/VGG16/faster_rcnn_alt_opt/stage_fast_rcnn_solver*.pt
base_lr: 0.001
lr_policy: 'step'
step_size: 30000
display: 20
....
迭代次数在文件py-faster-rcnn/tools/train_faster_rcnn_alt_opt.py中进行修改
max_iters = [80000, 40000, 80000, 40000]
分别对应rpn第1阶段,fast rcnn第1阶段,rpn第2阶段,fast rcnn第2阶段的迭代次数。
开始训练:
cd py-faster-rcnn
./experiments/scripts/faster_rcnn_alt_opt.sh 0 VGG16 pascal_voc
参数表明使用第一块GPU(0);模型是VGG16;训练数据是pascal_voc(voc2007)。