MASK_RCNN解读6-网络误差反向向传播总体流程
从train_net.py的def main():函数进入,读取参数、初始化日志后进入def train(cfg, local_rank, distributed):函数,进行模型加载。通过下列代码读取模型权重值:
checkpointer = DetectronCheckpointer(
cfg, model, optimizer, scheduler, output_dir, save_to_disk
)
extra_checkpoint_data = checkpointer.load(cfg.MODEL.WEIGHT)
arguments.update(extra_checkpoint_data)
读取完成后,我们可以看到,除了ResNet的网络结构外,,其他层的的tensor的requires_grad被标记为TRUE,这个字段表示该tensor是否需要在被反向误差传递,主要的列表如下:
1)FPN网络(Feature Pyramid Networks,含金字塔)模块:
model.backbone.fpn.fpn_inner1
model.backbone.fpn.fpn_inner2
model.backbone.fpn.fpn_inner3
model.backbone.fpn.fpn_inner4
model.backbone.fpn.fpn_layer1
model.backbone.fpn.fpn_layer2
model.backbone.fpn.fpn_layer3
model.backbone.fpn.fpn_layer4
2)rpn 网络:
Regio