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
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
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
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
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
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
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
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
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
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
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