faster rcnn训练方式有两种,一种是交替优化方法(alternating optimization),即训练两个网络,一个是rpn,一个是fast rcnn,总计两个stage,每个stage各训练一次rpn和fast rcnn。另外一种训练方式为近似联合训练(approximate joint training),也称end to end的训练方式,训练过程中只训练一个权重网络,训练速度有可观的提升,而训练精度不变。
1. alternating optimization
alternating optimization训练过程分如下四个小阶段:
1. stage 1 RPN proposals
2. stage 1 Fast R-CNN using PRN proposals
3. stage 2 Fine tune RPN proposals of stage 1
4. stage 2 Fine tune Fast R-CNN of stage 1
每个阶段求解器的超参数配置文件在:models/数据集/预训练模型/faster_rcnn_alt_opt下,如stage1_faste_rpn_solver60k80k.pt.
可以修改如下参数:
base_lr: 0.001lr_policy: "step"
gamma: 0.1
stepsize: 60000
display: 20
average_loss: 100
momentum: 0.9
weight_decay: 0.0005
此外每个阶段的back bone基础网络模型也在这个路径下,如stage1_rpn_train.pt
训练准备工作
1. 在训练新模型时候,为防止与之前的模型搞混,需要再训练前完成以下三件事:
(1) output文件夹删除,
(2)删除py-faster-rcnn/data/cache中的文件
(3)删除py-faster-rcnn/data/VOCdevkit2007/annotations_cache中的文件
2. 至于学习率等之类的设置