Exemplo n.º 1
0
def R101_512_ff(cfg, pretrained=True):
    model = ResNet(Bottleneck, blocks = cfg.MODEL.RESNET.BLOCKS, extras = cfg.MODEL.RESNET.EXTRAS,
                   se = cfg.MODEL.RESNET.SE, cbam = cfg.MODEL.RESNET.CBAM, fusion = cfg.MODEL.RESNET.FUSION)
    if pretrained:
        pretrained_dict = load_state_dict_from_url(model_urls['resnet101'])
        model_dict = model.state_dict()
        pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}
        model_dict.update(pretrained_dict)
        model.load_state_dict(model_dict)
    return model
Exemplo n.º 2
0
def _shufflenetv2(arch, pretrained, *args, **kwargs):
    model = ShuffleNetV2(*args, **kwargs)

    if pretrained:
        model_url = model_urls[arch]
        if model_url is None:
            raise NotImplementedError('pretrained {} is not supported as of now'.format(arch))
        else:
            state_dict = load_state_dict_from_url(model_url)
            model.load_state_dict(state_dict, strict=False)

    return model
Exemplo n.º 3
0
def build_backbone(cfg):
    backbone_name = cfg.MODEL.BACKBONE.NAME
    print(backbone_name)
    if backbone_name == "basic":
        model = BasicModel(cfg)
        return model
    if backbone_name == "vgg":
        model = VGG(cfg)
        if cfg.MODEL.BACKBONE.PRETRAINED:
            state_dict = load_state_dict_from_url(
                "https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth")
            model.init_from_pretrain(state_dict)
        return model
Exemplo n.º 4
0
def SEResnet152_512(cfg, pretrained=True):
    model = SEResNet(SEBottleneck,
                     blocks=cfg.MODEL.RESNET.BLOCKS,
                     extras=cfg.MODEL.RESNET.EXTRAS)
    if pretrained:
        pretrained_dict = load_state_dict_from_url(model_urls['resnet152'])
        model_dict = model.state_dict()
        pretrained_dict = {
            k: v
            for k, v in pretrained_dict.items() if k in model_dict
        }
        model_dict.update(pretrained_dict)
        model.load_state_dict(model_dict)
    return model
def SEResnet34(cfg, pretrained=True):
    model = SEResNet(SEBasicBlock,
                     blocks=cfg.MODEL.RESNET.BLOCKS,
                     extras=cfg.MODEL.RESNET.EXTRAS,
                     fusion=cfg.MODEL.RESNET.FUSION)
    if pretrained:
        pretrained_dict = load_state_dict_from_url(model_urls['resnet34'])
        model_dict = model.state_dict()
        pretrained_dict = {
            k: v
            for k, v in pretrained_dict.items() if k in model_dict
        }
        model_dict.update(pretrained_dict)
        model.load_state_dict(model_dict)
    return model
Exemplo n.º 6
0
def build_backbone(cfg):
    backbone_name = cfg.MODEL.BACKBONE.NAME
    if backbone_name == "resnet_rdd":
        model = ResNetRDD(cfg)
        return model
    if backbone_name == "resnet_tdt":
        model = ResNetTDT(cfg, block=BasicBlock)
        return model
    if backbone_name == "vgg":
        model = VGG(cfg)
        if cfg.MODEL.BACKBONE.PRETRAINED:
            state_dict = load_state_dict_from_url(
                "https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth"
            )
            model.init_from_pretrain(state_dict)
        return model
Exemplo n.º 7
0
def wide_resnet101_2_512(cfg, pretrained=True):
    model = ResNet(Bottleneck,
                   blocks=cfg.MODEL.RESNET.BLOCKS,
                   extras=cfg.MODEL.RESNET.EXTRAS,
                   width_per_group=64 * 2)
    if pretrained:
        pretrained_dict = load_state_dict_from_url(
            model_urls['wide_resnet101_2'])
        model_dict = model.state_dict()
        pretrained_dict = {
            k: v
            for k, v in pretrained_dict.items() if k in model_dict
        }
        model_dict.update(pretrained_dict)
        model.load_state_dict(model_dict)
    return model
Exemplo n.º 8
0
def Resnet50_32x4d(cfg, pretrained=True):
    model = ResNet(Bottleneck,
                   blocks=cfg.MODEL.RESNET.BLOCKS,
                   extras=cfg.MODEL.RESNET.EXTRAS,
                   groups=32,
                   width_per_group=4)
    if pretrained:
        pretrained_dict = load_state_dict_from_url(
            model_urls['resnext50_32x4d'])
        model_dict = model.state_dict()
        pretrained_dict = {
            k: v
            for k, v in pretrained_dict.items() if k in model_dict
        }
        model_dict.update(pretrained_dict)
        model.load_state_dict(model_dict)
    return model
def SEResnet101_32x8d(cfg, pretrained=True):
    model = SEResNet(SEBottleneck,
                     blocks=cfg.MODEL.RESNET.BLOCKS,
                     extras=cfg.MODEL.RESNET.EXTRAS,
                     groups=32,
                     width_per_group=8,
                     fusion=cfg.MODEL.RESNET.FUSION)
    if pretrained:
        pretrained_dict = load_state_dict_from_url(
            model_urls['resnext101_32x8d'])
        model_dict = model.state_dict()
        pretrained_dict = {
            k: v
            for k, v in pretrained_dict.items() if k in model_dict
        }
        model_dict.update(pretrained_dict)
        model.load_state_dict(model_dict)
    return model
Exemplo n.º 10
0
def build_backbone(cfg):
    backbone_name = cfg.MODEL.BACKBONE.NAME
    
    if backbone_name == "Inception":
        model = Inception(cfg)
        return model
    
    if backbone_name == "basic":
        model = BasicModel(cfg)
        return model
    
    if backbone_name == "MobileNet":
        model = MobileNet(cfg)
        return model
    
    if backbone_name == "ResNet50":
        model = ResNet50(cfg)
        return model
    
    
    if backbone_name == "ResNet":
        model = ResNet(cfg) 
        return model
    
    if backbone_name == "ResNet50_v2":
        model = ResNet50_v2(cfg)
        return model
    
    if backbone_name == "ResNext":
        model = ResNext(cfg)
        return model
    
    if backbone_name == "vgg":
        model = VGG(cfg)
        if cfg.MODEL.BACKBONE.PRETRAINED:
            state_dict = load_state_dict_from_url(
                "https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth")
            model.init_from_pretrain(state_dict)
        return model
Exemplo n.º 11
0
def build_backbone(cfg):
    backbone_name = cfg.MODEL.BACKBONE.NAME
    
    print(backbone_name)
    if backbone_name == "basic":
        model = BasicModel(cfg)
        return model
    if backbone_name == "vgg":
        model = VGG(cfg)
        if cfg.MODEL.BACKBONE.PRETRAINED:
            state_dict = load_state_dict_from_url(
                "https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth")
            model.init_from_pretrain(state_dict)
    if backbone_name == "resnet":
        depth = cfg.MODEL.BACKBONE.DEPTH
        model_urls = {
            'resnet18': 'https://download.pytorch.org/models/resnet18-5c106cde.pth',
            'resnet34': 'https://download.pytorch.org/models/resnet34-333f7ec4.pth',
            'resnet50': 'https://download.pytorch.org/models/resnet50-19c8e357.pth',
            'resnet101': 'https://download.pytorch.org/models/resnet101-5d3b4d8f.pth',
            'resnet152': 'https://download.pytorch.org/models/resnet152-b121ed2d.pth',}
        name_dict = {18: 'resnet18', 34: 'resnet34', 50: 'resnet50', 101: 'resnet101', 152: 'resnet152'}
        layers_dict = {18: [2, 2, 2, 2], 34: [3, 4, 6, 3], 50: [3, 4, 6, 3], 
                       101: [3, 4, 23, 3], 152: [3, 8, 36, 3]}
        block_dict = {18: BasicBlock, 34: BasicBlock, 50: Bottleneck, 101: Bottleneck, 152: Bottleneck}
        model = ResNet(cfg, block_dict[depth], layers_dict[depth])
        if cfg.MODEL.BACKBONE.PRETRAINED:
            pretrained_dict = model_zoo.load_url(model_urls[name_dict[depth]])
            model_dict = model.state_dict()
            pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}
            model_dict.update(pretrained_dict)
            model.load_state_dict(model_dict)
        return model
    if backbone_name == "resnest":
        model = ResNest(cfg,BasicBlock)
        return model
Exemplo n.º 12
0
def vgg(cfg, pretrained=True):
    model = VGG(cfg)
    if pretrained:
        model.init_from_pretrain(load_state_dict_from_url(model_urls['vgg']))
    return model
def load_pretrained_weights(model, model_name):
    """ Loads pretrained weights, and downloads if loading for the first time. """
    state_dict = load_state_dict_from_url(url_map[model_name])
    model.load_state_dict(state_dict, strict=False)
    print('Loaded pretrained weights for {}'.format(model_name))
def mobilenet_v2(cfg, pretrained=True):
    model = MobileNetV2()
    if pretrained:
        model.load_state_dict(load_state_dict_from_url(model_urls['mobilenet_v2']), strict=False)
    return model
Exemplo n.º 15
0
def get_vgg(cfg, return_features, norm_func, pretrained, progress, **kwargs):
    vgg = VGG(VGG_CONFIG[cfg], return_features, norm_func)
    if pretrained:
        state_dict = load_state_dict_from_url(kwargs['url'])
        vgg.load_state_dict(state_dict, strict=False)
    return vgg