def __init__(self, cfg): super(MGNBackbone, self).__init__() resnet = create_backbone(cfg) self.backbone = nn.Sequential( resnet.conv1, resnet.bn1, resnet.relu, resnet.maxpool, resnet.layer1, resnet.layer2, resnet.layer3[0], ) res_conv4 = nn.Sequential(*resnet.layer3[1:]) res_g_conv5 = resnet.layer4 res_p_conv5 = nn.Sequential( Bottleneck(1024, 512, downsample=nn.Sequential( nn.Conv2d(1024, 2048, 1, bias=False), nn.BatchNorm2d(2048))), Bottleneck(2048, 512), Bottleneck(2048, 512)) # res_p_conv5.load_state_dict(resnet.layer4.state_dict()) load_state_dict(res_p_conv5, resnet.layer4.state_dict()) self.p0 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(res_g_conv5)) self.p1 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(res_p_conv5)) self.p2 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(res_p_conv5))
def __init__(self, cfg): super(PyramidalBackbone, self).__init__() resnet = create_backbone(cfg) self.backbone = nn.Sequential(resnet.conv1, resnet.bn1, resnet.relu, resnet.maxpool, resnet.layer1, resnet.layer2, resnet.layer3, resnet.layer4)
def __init__(self, cfg): super(PGFABackbone, self).__init__() # cfg.model.backbone.last_conv_stride = 1 resnet = create_backbone(cfg) # resnet.layer4[0].downsample[0].stride = (1,1) # resnet.layer4[0].conv2.stride = (1,1) self.backbone = nn.Sequential(resnet.conv1, resnet.bn1, resnet.relu, resnet.maxpool, resnet.layer1, resnet.layer2, resnet.layer3, resnet.layer4)
def __init__(self, cfg): super(MDRSBackbone, self).__init__() resnet = create_backbone(cfg) self.cfg = cfg self.backbone = nn.Sequential( resnet.conv1, resnet.bn1, resnet.relu, resnet.maxpool, resnet.layer1, resnet.layer2, resnet.layer3[0], ) self.out_c = resnet.out_c res_conv4 = nn.Sequential(*resnet.layer3[1:]) global_conv5 = resnet.layer4 # Option 1 # local_conv5_1 = nn.Sequential( # Bottleneck(1024, 512, stride=2, downsample=nn.Sequential(nn.Conv2d(1024, 2048, 1, 2, bias=False), nn.BatchNorm2d(2048))), # Bottleneck(2048, 512), # Bottleneck(2048, 512)) # # load_state_dict(local_conv5_1, resnet.layer4.state_dict()) # # local_conv5_2 = nn.Sequential( # Bottleneck(1024, 512, downsample=nn.Sequential(nn.Conv2d(1024, 2048, 1, bias=False), nn.BatchNorm2d(2048))), # Bottleneck(2048, 512), # Bottleneck(2048, 512)) # # load_state_dict(res_p_conv5_2, resnet.layer4.state_dict()) # # self.p0 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(global_conv5)) # self.p1 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(local_conv5_1)) # self.p2 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(local_conv5_2)) # Option 2 local_conv5 = nn.Sequential( Bottleneck(1024, 512, downsample=nn.Sequential( nn.Conv2d(1024, 2048, 1, bias=False), nn.BatchNorm2d(2048))), Bottleneck(2048, 512), Bottleneck(2048, 512)) local_conv5.load_state_dict(resnet.layer4.state_dict()) self.p0 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(global_conv5)) self.p1 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(local_conv5)) self.p2 = nn.Sequential(copy.deepcopy(res_conv4), copy.deepcopy(local_conv5))
def __init__(self, cfg): super(HOReIDEncoder, self).__init__() self.cfg = cfg # backbone and optimize its architecture # cfg.model.backbone.last_conv_stride = 1 resnet = create_backbone(cfg) # resnet.layer4[0].downsample[0].stride = (1,1) # resnet.layer4[0].conv2.stride = (1,1) # cnn backbone self.resnet_conv = nn.Sequential( resnet.conv1, resnet.bn1, resnet.maxpool, # no relu resnet.layer1, resnet.layer2, resnet.layer3, resnet.layer4)