配置文件中:
5 backbone=dict(
6 type='ResNet',
7 depth=101,
8 num_stages=4,
9 out_indices=(0, 1, 2, 3),
10 frozen_stages=1,
11 style='pytorch'),
ResNet所在函数:
mmdet/models/backbones/resnet.py
def forward(self, x): x = self.conv1(x) x = self.norm1(x) x = self.relu(x) x = self.maxpool(x) outs = [] for i, layer_name in enumerate(self.res_layers): res_layer = getattr(self, layer_name) x = res_layer(x) if i in self.out_indices: outs.append(x) return tuple(outs)
因为ResNet的conv1和maxpool本身就会做2次的下采样,所以第0 stage的输出的特征图的stride为8.
self.conv1 = build_conv_layer( self.conv_cfg, in_channels, 64, kernel_size=7, stride=2, padding=3, bias=False)