def __init__(self, backbone="resnet50", backbone_path=None):
        """
        Args:
            backbone (str): resnet backbone to use.
                Expected one of ["resnet18", "resnet34", "resnet50", "resnet101", "resnet152"]
                Default is "resnet50".
            backbone_path (str): path to pretrained backbone model.
                If ``None`` then will be used torchvision pretrained model.
                Default is None.
        """
        super().__init__()

        self.out_channels = _channels_map[backbone]
        if backbone == "resnet18":
            backbone = resnet.resnet18(pretrained=not backbone_path)
        elif backbone == "resnet34":
            backbone = resnet.resnet34(pretrained=not backbone_path)
        elif backbone == "resnet50":
            backbone = resnet.resnet50(pretrained=not backbone_path)
        elif backbone == "resnet101":
            backbone = resnet.resnet101(pretrained=not backbone_path)
        elif backbone == "resnet152":
            backbone = resnet.resnet152(pretrained=not backbone_path)
        else:
            raise ValueError(f"Unknown ResNet backbone - '{backbone}'!")

        if backbone_path:
            backbone.load_state_dict(torch.load(backbone_path))

        self.feature_extractor = nn.Sequential(*list(backbone.children())[:7])

        conv4_block1 = self.feature_extractor[-1][0]

        conv4_block1.conv1.stride = (1, 1)
        conv4_block1.conv2.stride = (1, 1)
        conv4_block1.downsample[0].stride = (1, 1)

        Args:
            backbone (str): resnet backbone to use.
                Expected one of ["resnet18", "resnet34", "resnet50", "resnet101", "resnet152"]
                Default is "resnet50".
            backbone_path (str): path to pretrained backbone model.
                If ``None`` then will be used torchvision pretrained model.
                Default is None.
        
examples/detection/models/ssd.py