Exemple #1
0
def feasc50(num_classes=200, nparts=1, seflag=False):
    """Constructs a ResNet-50 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    if seflag:
        rd = [16, 32, 64, 128]
        model = ResNet(SEBottleneck, [3, 4, 6, 3], num_classes=num_classes, rd=rd, nparts=nparts, seflag=True)
    else:
        model = ResNet(ResBottleneck, [3, 4, 6, 3], num_classes=num_classes, nparts=nparts, seflag=False)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    return model
Exemple #2
0
    def __init__(self, class_num=62):
        super(bnneck, self).__init__()
        resnet = ResNet(BasicBlock, [2, 2, 2, 2])
        self.base_model = nn.Sequential(
            resnet.conv1,
            resnet.bn1,
            resnet.relu,
            resnet.layer1,
            resnet.layer2,
            resnet.layer3,
            resnet.layer4
        )
        self.maxpool = nn.AdaptiveMaxPool2d(1)
        self.bnneck = nn.BatchNorm1d(256)
        self.bnneck.bias.requires_grad_(False)  # no shift
        self.reduce_layer = nn.Conv2d(512, 256, 1)

        # self.classifier = ClassBlock(512, 1024)
        self.fc1 = nn.Sequential(
            nn.Linear(256, class_num))
        self.fc2 = nn.Sequential(
            nn.Linear(256, class_num))
        self.fc3 = nn.Sequential(
            nn.Linear(256, class_num))
        self.fc4 = nn.Sequential(
            nn.Linear(256, class_num))
Exemple #3
0
    def __init__(self, class_num=62):
        super(res18, self).__init__()
        model_ft = ResNet(BasicBlock, [2, 2, 2, 2])
        self.base_model = nn.Sequential(*list(model_ft.children())[:-3])
        # attention schema
        self.avgpool = nn.AdaptiveAvgPool2d(1)
        self.maxpool = nn.AdaptiveMaxPool2d(1)
        self.sign = nn.Sigmoid()
        in_plances = 256
        ratio = 8
        self.a_fc1 = nn.Conv2d(in_plances,in_plances//ratio,1,bias=False)
        self.a_relu = nn.ReLU()
        self.a_fc2 = nn.Conv2d(in_plances//ratio, in_plances, 1, bias=False)

        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.max_pool = nn.AdaptiveMaxPool2d(1)
        self.reduce_layer = nn.Conv2d(512, 256, 1)

        # self.classifier = ClassBlock(512, 1024)
        self.fc1 = nn.Sequential(nn.Dropout(0.5),
                                 nn.Linear(256, class_num))
        self.fc2 = nn.Sequential(nn.Dropout(0.5),
                                 nn.Linear(256, class_num))
        self.fc3 = nn.Sequential(nn.Dropout(0.5),
                                 nn.Linear(256, class_num))
        self.fc4 = nn.Sequential(nn.Dropout(0.5),
                                 nn.Linear(256, class_num))
Exemple #4
0
def se_resnet34(num_classes):
    """Constructs a ResNet-34 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(PSEBasicBlock, [3, 4, 6, 3], num_classes=num_classes)
    return model
Exemple #5
0
def se_resnet152(num_classes):
    """Constructs a ResNet-152 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(PSEBottleneck, [3, 8, 36, 3], num_classes=num_classes)
    return model
Exemple #6
0
def resnet152(pretrained=False, **kwargs):
    if pretrained:
        model = ResNet(Bottleneck, [3, 8, 36, 3], **kwargs)
        pretrained_state_dict = torch.load(
            './Authority/resnet152-b121ed2d.pth'
        )  # load_url函数根据model_urls字典下载或导入相应的预训练模型
        now_state_dict = model.state_dict()  # 返回model模块的字典
        pretrained_state_dict.pop('fc.weight')  # 排除全连接层的参数(全连接层返回分类个数)
        pretrained_state_dict.pop('fc.bias')
        now_state_dict.update(pretrained_state_dict)
        model.load_state_dict(now_state_dict)
        # 最后通过调用model的load_state_dict方法用预训练的模型参数来初始化你构建的网络结构,
        # 这个方法就是PyTorch中通用的用一个模型的参数初始化另一个模型的层的操作。load_state_dict方法还有一个重要的参数是strict,
        # 该参数默认是True,表示预训练模型的层和你的网络结构层严格对应相等(比如层名和维度)
        return model
    return ResNet(Bottleneck, [3, 8, 36, 3], **kwargs)
Exemple #7
0
def se_resnet18(num_classes=1_000):
    """Constructs a ResNet-18 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(SEBasicBlock, [2, 2, 2, 2], num_classes=num_classes)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    return model
def SE_ResNet101(num_classes=1_000):
    """Constructs a ResNet-101 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(SEBottleneck, [3, 4, 23, 3], num_classes=num_classes)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    return model
Exemple #9
0
def se_resnet34(num_classes=5):
    """Constructs a ResNet-34 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(SEBasicBlock, [3, 4, 6, 3], num_classes=num_classes)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    return model
Exemple #10
0
def se_resnet152(num_classes=5):
    """Constructs a ResNet-152 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(SEBottleneck, [3, 8, 36, 3], num_classes=num_classes)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    return model
Exemple #11
0
def se_resnet34(pretrained, num_classes=1000):
    """Constructs a SE-ResNet-34 model."""
    model = ResNet(SEBasicBlock, [3, 4, 6, 3], num_classes=num_classes)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    if pretrained:
        state_dict = torch.load('/home/kg2/se_resnet34_best.pth')['state_dict']
        model.load_state_dict(state_dict, strict=False)
    return model
Exemple #12
0
def feasc18(num_classes=200, nparts=1):
    """Constructs a ResNet-18 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(SEBasicBlock, [2, 2, 2, 2], num_classes=num_classes, nparts=nparts)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    return model
Exemple #13
0
def resnet18(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [2, 2, 2, 2], **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet18']))
    return model
Exemple #14
0
def resnet18_l05_w05(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [1, 1, 1, 1], scale_factor=2, **kwargs)
    model.name = 'ResNet18(length=05 width=05)'
    return model
Exemple #15
0
def dse_resnet50(num_classes=1000):
    """Constructs a ResNet-50 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(DSEBottleneck, [3, 4, 6, 3], num_classes=num_classes)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    return model
Exemple #16
0
def resnet36_l2_w2(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [4, 4, 4, 4], scale_factor=0.5, **kwargs)
    model.name = 'ResNet18(length=2 width=2)'
    return model
def _se_resnet(arch, block, layers, pretrained, progress, **kwargs):
    # adapted from the _resnet function in torch vision
    model = ResNet(block, layers, **kwargs)
    model.avgpool = nn.AdaptiveAvgPool2d(1)

    if pretrained:
        state_dict = load_state_dict_from_url(model_urls[arch],
                                              progress=progress)
        model.load_state_dict(state_dict)
    return model
def _resnet(arch, block, layers, variant=None, **kwargs):
    if variant is None:
        model = ResNet(block, layers, **kwargs)
    elif variant == "C":
        model = ResNet_C(block, layers, **kwargs)
    elif variant == "D":
        model = ResNet_D(block, layers, **kwargs)
    elif variant == "PA":
        model = ResNetV2_C(block, layers, **kwargs)
    return model
def resnet18_nr3_234(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [2, 2, 2, 2], noskip_by_layer=[False, True, True, True], **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet18']))
    model.name = 'ResNet18_NR3_234'
    return model
def resnet18_ep01(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [2, 2, 2, 2], disable_early_downsampling=True, **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet18']))
    model.name = 'ResNet18_EP01'
    return model
Exemple #21
0
def se_resnet50(num_classes=5, pretrained=False):
    """Constructs a ResNet-50 model.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(SEBottleneck, [3, 4, 6, 3], num_classes=num_classes)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    if pretrained:
        model.load_state_dict(load_state_dict_from_url(
            "https://github.com/moskomule/senet.pytorch/releases/download/archive/seresnet50-60a8950a85b2b.pkl"))
    return model
def resnet18_dp00_dspl2(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [4, 4, None, None], disable_early_pooling=True, disable_early_downsampling=True, **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet18']))
    model.name = 'ResNet18_dp00_DSPL2'
    return model
Exemple #23
0
def se_resnet50(num_classes=1000, pretrained=False):
    """Constructs a ResNet-50 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(SEBottleneck, [3, 4, 6, 3], num_classes=num_classes)
    model.avgpool = nn.AdaptiveAvgPool2d(1)
    if pretrained:
        model.load_state_dict(model_zoo.load_url("https://www.dropbox.com/s/xpq8ne7rwa4kg4c/seresnet50-60a8950a85b2b.pkl"))
    return model
Exemple #24
0
 def __init__(self, class_num=62):
     super(senet, self).__init__()
     self.model = ResNet(
         SEBasicBlock, [2, 2, 2, 2], num_classes=class_num)
     self.model.fc = nn.Linear(512, 256)
     self.model.avgpool = nn.AdaptiveAvgPool2d((1,1))
     self.drop = nn.Dropout(0.5)
     self.fc1 = nn.Linear(256, class_num)
     self.fc2 = nn.Linear(256, class_num)
     self.fc3 = nn.Linear(256, class_num)
     self.fc4 = nn.Linear(256, class_num)
Exemple #25
0
def resnet152(pretrained=False, **kwargs):
    """Constructs a ResNet-152 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(Bottleneck, [3, 8, 36, 3], **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet152']))
    model.name = 'ResNet152'
    return model
Exemple #26
0
def resnet18_thin(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [4, 4, 4, 4], scale_factor=2, **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet18']))
    model.name = 'ResNet18_Thin'
    return model
Exemple #27
0
def resnet18_dspl6(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [1, 1, 1, 1, 2, 2, None, None], **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet18']))
    model.name = 'ResNet18_DSPL6'
    return model
def resnet18noskip_dspl3(pretrained=False, **kwargs):
    """Constructs a ResNet-18 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    kwargs["noskip"] = True
    model = ResNet(BasicBlock, [2, 3, 3, None], **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet18']))
    model.name = 'ResNet18NoSkip_DSPL3'
    return model
Exemple #29
0
def resnet34(pretrained=False, **kwargs):
    """Constructs a ResNet-34 model.

    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
    """
    model = ResNet(BasicBlock, [3, 4, 6, 3], **kwargs)
    if pretrained:
        model.load_state_dict(model_zoo.load_url(model_urls['resnet34']))
    model.name = 'ResNet34'

    return model
    def __init__(self, pretrained=False, out_features=2):
        """
        """
        super().__init__()
        self.net = ResNet(BasicBlock, [2, 2, 2, 2])

        if pretrained:
            self.net.load_state_dict(
                model_zoo.load_url(model_urls['resnet_18']))

        # change last layer
        self.net.fc = nn.Linear(self.net.fc.in_features, out_features)
        self.out_features = out_features