记录了detectron2中faster R-CNN代码的训练流程(从建立模型到完成一次训练)

本文详细介绍了Detectron2中FasterR-CNN的代码流程,包括模型构建(backbone、proposalgenerator、ROIHeads)、优化器设置、数据加载、学习率调度器以及训练过程中的关键步骤。主要涉及了网络结构、损失函数和数据预处理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

self.build_model(cfg)

modeling/meta_arch/build.py

meta_arch = cfg.MODEL.META_ARCHITECTURE #注册机制建立网络
META_ARCH_REGISTRY.get(meta_arch)(cfg)

modeling/meta_arch/rcnn.py

self.backbone = build_backbone(cfg) #建立backbone
self._SHAPE_ = self.backbone.output_shape() #获取backbone最后输出通道数
self.proposal_generator = build_proposal_generator(cfg, self._SHAPE_) #建立RPN
self.roi_heads = build_roi_heads(cfg, self._SHAPE_) #建立ROIHead

build_backbone(cfg)

建立res50网络结构,最后输出层为res4 block,输出通道数为1024

build_proposal_generator(cfg, self.SHAPE)

包含RPNHead和AnchorGenerator:

RPN(
 (rpn_head): StandardRPNHead(
    (conv): Conv2d(
      1024, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
      (activation): ReLU()
    )
    (objectness_logits): Conv2d(1024, 15, kernel_size=(1, 1), stride=(1, 1))
    (anchor_deltas): Conv2d(1024, 60, kernel_size=(1, 1), stride=(1, 1))
  )
 (anchor_generator): DefaultAnchorGenerator(
    (cell_anchors): BufferList()
 )
)

build_roi_heads(cfg, self.SHAPE)

Res5ROIHeads(
  (pooler): ROIPooler(
    (level_poolers): ModuleList(
      (0): ROIAlign(output_size=(7, 7), spatial_scale=0.0625, sampling_ratio=0, aligned=True)
    )
  )
  (res5): Sequential(
    (0): BottleneckBlock(
      (shortcut): Conv2d(
        1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False
        (norm): FrozenBatchNorm2d(num_features=2048, eps=1e-05)
      )
      (conv1): Conv2d(
        1024, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
        (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
      )
      (conv2): Conv2d(
        512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
        (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
      )
      (conv3): Conv2d(
        512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
        (norm): FrozenBatchNorm2d(num_features=2048, eps=1e-05)
      )
    )
    (1): BottleneckBlock(
      (conv1): Conv2d(
        2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
        (norm): FrozenBatchNorm2d(<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值