正在经历最近发布的tensorflow / models ../ object_detection模型,特别是更快的r-cnn。
本文提到了4步交替训练,
训练RPN,然后冻结RPN层,
训练RCNN,然后冻结RCNN层,
训练RPN,然后冻结RPN层
训练RCNN。
根据我的收集,在阶段2 = RCNN中,RPN确实冻结了:
if self._is_training:
proposal_boxes = tf.stop_gradient(proposal_boxes)
因此,涵盖了培训RPN +冻结RPN层,然后进行RCNN培训,但是其他3个步骤又在哪里执行?
我想念什么吗?
最佳答案
我们在TF Object Detection API中对Faster R-CNN的实现非常接近本文,但有一些不同。这些差异之一是我们端到端地训练模型,而不是本文中使用的交替训练。
您提到的stop_gradient实际上并没有冻结RPN ---它所做的是它忽略了通过提案坐标的渐变贡献,但是继续允许渐变通过RPN功能。
希望这可以帮助!