def create_model(model_name, num_classes=1000, pretrained=False, **kwargs):
    if 'test_time_pool' in kwargs:
        test_time_pool = kwargs.pop('test_time_pool')
    else:
        test_time_pool = True
    if 'extra' in kwargs:
        extra = kwargs.pop('extra')
    else:
        extra = True
    if model_name == 'dpn68':
        model = dpn68(
            num_classes=num_classes, pretrained=pretrained, test_time_pool=test_time_pool)
    elif model_name == 'dpn68b':
        model = dpn68b(
            num_classes=num_classes, pretrained=pretrained, test_time_pool=test_time_pool)
    elif model_name == 'dpn92':
        model = dpn92(
            num_classes=num_classes, pretrained=pretrained, test_time_pool=test_time_pool, extra=extra)
    elif model_name == 'dpn98':
        model = dpn98(
            num_classes=num_classes, pretrained=pretrained, test_time_pool=test_time_pool)
    elif model_name == 'dpn131':
        model = dpn131(
            num_classes=num_classes, pretrained=pretrained, test_time_pool=test_time_pool)
    elif model_name == 'dpn107':
        model = dpn107(
            num_classes=num_classes, pretrained=pretrained, test_time_pool=test_time_pool)
    elif model_name == 'resnet18':
        model = resnet18(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'resnet34':
        model = resnet34(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'resnet50':
        model = resnet50(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'resnet101':
        model = resnet101(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'resnet152':
        model = resnet152(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'densenet121':
        model = densenet121(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'densenet161':
        model = densenet161(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'densenet169':
        model = densenet169(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'densenet201':
        model = densenet201(num_classes=num_classes, pretrained=pretrained, **kwargs)
    elif model_name == 'inception_v3':
        model = inception_v3(
            num_classes=num_classes, pretrained=pretrained, transform_input=False, **kwargs)
    else:
        assert False, "Unknown model architecture (%s)" % model_name
    return model
Exemple #2
0
 def test_densenet(self):
     # Densenet-121 model
     x = Variable(torch.randn(BATCH_SIZE, 3, 224, 224).fill_(1.0))
     self.exportTest(toC(densenet121()), toC(x))
 def __init__(self, pretrained=True, progress=True, **kwargs):
     super(densenet121, self).__init__()
     backbone = densenet.densenet121(pretrained, progress, **kwargs)
     self.backbone = backbone.features
Exemple #4
0
def create_model(model_name, num_classes=1000, pretrained=False, **kwargs):
    if 'test_time_pool' in kwargs:
        test_time_pool = kwargs.pop('test_time_pool')
    else:
        test_time_pool = True
    if model_name == 'dpn68':
        model = dpn68(num_classes=num_classes,
                      pretrained=pretrained,
                      test_time_pool=test_time_pool,
                      **kwargs)
    elif model_name == 'dpn92':
        model = dpn92(num_classes=num_classes,
                      pretrained=pretrained,
                      test_time_pool=test_time_pool,
                      **kwargs)
    elif model_name == 'dpn98':
        model = dpn98(num_classes=num_classes,
                      pretrained=pretrained,
                      test_time_pool=test_time_pool,
                      **kwargs)
    elif model_name == 'dpn131':
        model = dpn131(num_classes=num_classes,
                       pretrained=pretrained,
                       test_time_pool=test_time_pool,
                       **kwargs)
    elif model_name == 'dpn107':
        model = dpn107(num_classes=num_classes,
                       pretrained=pretrained,
                       test_time_pool=test_time_pool,
                       **kwargs)
    elif model_name == 'resnet18':
        model = resnet18(num_classes=num_classes,
                         pretrained=pretrained,
                         **kwargs)
    elif model_name == 'resnet34':
        model = resnet34(num_classes=num_classes,
                         pretrained=pretrained,
                         **kwargs)
    elif model_name == 'resnet50':
        model = resnet50(num_classes=num_classes,
                         pretrained=pretrained,
                         **kwargs)
    elif model_name == 'resnet101':
        model = resnet101(num_classes=num_classes,
                          pretrained=pretrained,
                          **kwargs)
    elif model_name == 'resnet152':
        model = resnet152(num_classes=num_classes,
                          pretrained=pretrained,
                          **kwargs)
    elif model_name == 'densenet121':
        model = densenet121(num_classes=num_classes,
                            pretrained=pretrained,
                            **kwargs)
    elif model_name == 'densenet161':
        model = densenet161(num_classes=num_classes,
                            pretrained=pretrained,
                            **kwargs)
    elif model_name == 'densenet169':
        model = densenet169(num_classes=num_classes,
                            pretrained=pretrained,
                            **kwargs)
    elif model_name == 'densenet201':
        model = densenet201(num_classes=num_classes,
                            pretrained=pretrained,
                            **kwargs)
    elif model_name == 'inception_v3':
        model = inception_v3(num_classes=num_classes,
                             pretrained=pretrained,
                             transform_input=False,
                             **kwargs)
    else:
        assert False, "Unknown model architecture (%s)" % model_name
    return model
Exemple #5
0
def loss_selector(loss_net):
    #base
    if loss_net == "vgg16":
        from torchvision.models.vgg import vgg16
        net = vgg16(pretrained=True)
        loss_network = nn.Sequential(*list(net.features)[:31]).eval()
        return loss_network
    elif loss_net == "vgg16_bn":
        from torchvision.models.vgg import vgg16_bn
        net = vgg16_bn(pretrained=True)
        loss_network = nn.Sequential(*list(net.features)[:44]).eval()
        return loss_network
    elif loss_net == "resnet50":
        from torchvision.models.resnet import resnet50
        net=resnet50(pretrained=True)
        loss_network=nn.Sequential(*[child_module for child_module in net.children()][:-2]).eval()
        return loss_network
    elif loss_net == "resnet101":
        from torchvision.models.resnet import resnet101
        net=resnet101(pretrained=True)
        loss_network=nn.Sequential(*[child_module for child_module in net.children()][:-2]).eval()
        return loss_network
    elif loss_net == "resnet152":
        from torchvision.models.resnet import resnet152
        net=resnet152(pretrained=True)
        loss_network=nn.Sequential(*[child_module for child_module in net.children()][:-2]).eval()
        return loss_network
    elif loss_net == "squeezenet1_1":
        from torchvision.models.squeezenet import squeezenet1_1
        net=squeezenet1_1(pretrained=True)
        classifier=[item for item in net.classifier.modules()][1:-1]
        loss_network=nn.Sequential(*[net.features,*classifier]).eval()
        return loss_network
    elif loss_net == "densenet121":
        from torchvision.models.densenet import densenet121
        net=densenet121(pretrained=True)
        loss_network=nn.Sequential(*[net.features,nn.ReLU()]).eval()
        return loss_network
    elif loss_net == "densenet169":
        from torchvision.models.densenet import densenet169
        net=densenet169(pretrained=True)
        loss_network=nn.Sequential(*[net.features,nn.ReLU()]).eval()
        return loss_network
    elif loss_net == "densenet201":
        from torchvision.models.densenet import densenet201
        net=densenet201(pretrained=True)
        loss_network=nn.Sequential(*[net.features,nn.ReLU()]).eval()
        return loss_network        
    elif loss_net == "mobilenet_v2":
        from torchvision.models.mobilenet import mobilenet_v2
        net=mobilenet_v2(pretrained=True)
        loss_network=nn.Sequential(*[net.features]).eval()
        return loss_network                
    elif loss_net == "resnext50_32x4d":
        from torchvision.models.resnet import resnext50_32x4d
        net=resnext50_32x4d(pretrained=True)
        loss_network=nn.Sequential(*[child_module for child_module in net.children()][:-2]).eval()
        return loss_network      
    elif loss_net == "resnext101_32x8d":
        from torchvision.models.resnet import resnext101_32x8d
        net=resnext101_32x8d(pretrained=True)
        loss_network=nn.Sequential(*[child_module for child_module in net.children()][:-2]).eval()
        return loss_network
    elif loss_net == "wide_resnet50_2":
        from torchvision.models.resnet import wide_resnet50_2
        net=wide_resnet50_2(pretrained=True)
        loss_network=nn.Sequential(*[child_module for child_module in net.children()][:-2]).eval()
        return loss_network
    elif loss_net == "wide_resnet101_2":
        from torchvision.models.resnet import wide_resnet101_2
        net=wide_resnet101_2(pretrained=True)
        loss_network=nn.Sequential(*[child_module for child_module in net.children()][:-2]).eval()
        return loss_network
    elif loss_net == "inception_v3":
 def _create_model(self, scratch: bool, num_classes: int):
     model = densenet121(pretrained=not scratch)
     num_features = model.classifier.in_features
     model.classifier = nn.Linear(num_features, num_classes)
     return model
from torchvision.models import densenet
from torchvision.models.densenet import _DenseBlock, _Transition

#import code
from copy import deepcopy
from collections import OrderedDict

# Project imports
from util.util import print  # print with a header for this project

# Leveraged Torchvision implementation of DenseNet at:
#   https://github.com/pytorch/vision/blob/master/torchvision/models/densenet.py

_use_pretrained = True
name_to_model_fns = {
    "densenet121": lambda: densenet.densenet121(pretrained=_use_pretrained),
    "densenet169": lambda: densenet.densenet169(pretrained=_use_pretrained),
    "densenet201": lambda: densenet.densenet201(
        pretrained=_use_pretrained)  # We're just going to use this one
    ,
    "densenet161": lambda: densenet.densenet161(pretrained=_use_pretrained)
}


def get_densenet(name):
    return name_to_model_fns[name]()  # Call the function


"""
old_model.modules is more accurate of all indiv. layers
    old_model.features decomposes structure more, but doesn't include final FC classifier
 def __init__(self):
     super().__init__()
     self.model = densenet.densenet121(pretrained=False, num_classes=1)
     del self.model.classifier
Exemple #9
0
 def test_densenet(self):
     # Densenet-121 model
     x = Variable(torch.randn(BATCH_SIZE, 3, 224, 224).fill_(1.0))
     self.exportTest(toC(densenet121()), toC(x))
import numpy as np
import torch
from torch.autograd import Variable
from onnx2keras_custom import onnx_to_keras, check_torch_keras_error
import onnx
from torchvision.models.densenet import densenet121

if __name__ == '__main__':
    model = densenet121()
    model.eval()

    input_np = np.random.uniform(0, 1, (1, 3, 224, 224))
    input_var = Variable(torch.FloatTensor(input_np), requires_grad=False)
    output = model(input_var)

    torch.onnx.export(model, (input_var),
                      "_tmpnet.onnx",
                      verbose=True,
                      input_names=['test_in1'],
                      output_names=['test_out'])

    onnx_model = onnx.load('_tmpnet.onnx')
    k_model = onnx_to_keras(onnx_model, ['test_in1', 'test_in2'],
                            change_ordering=True)

    error = check_torch_keras_error(model,
                                    k_model,
                                    input_np,
                                    change_ordering=True)

    print('Max error: {0}'.format(error))
Exemple #11
0
Fichier : net.py Projet : zyg11/VKD
 def get_denset_backbone_layers(pretrained: bool):
     dnet = densenet121(pretrained=pretrained)
     original_model = list(dnet.children())[0]
     return nn.ModuleList(original_model.children()), 1024
Exemple #12
0
 def __init__(self, *args, **kwargs):
     super().__init__()
     self.densenet = densenet.densenet121(*args, **kwargs)
     self._is_modified = False
def densnet_bc121(nb_classes=1000, pretrained=False):
    return densenet121(pretrained=pretrained, num_classes=nb_classes)
 def __init__(self):
     super(NIHDense, self).__init__()
     self.densenet121 = Densenet.densenet121(pretrained=True)
Exemple #15
0
 def test_densenet(self):
     state_dict = model_zoo.load_url(model_urls['densenet121'], progress=False)
     self.run_model_test(densenet121(), train=False, batch_size=BATCH_SIZE,
                         state_dict=state_dict, atol=1e-7)
 def test_densenet(self):
     state_dict = model_zoo.load_url(model_urls['densenet121'], progress=False)
     self.run_model_test(densenet121(), train=False, batch_size=BATCH_SIZE,
                         state_dict=state_dict, atol=1e-7)
Exemple #17
0
 def __init__(self):
     super(DenseNet121, self).__init__()
     densenet = densenet121(pretrained=True)
     self.features = densenet.features
Exemple #18
0
# test_loader = DataLoader(dataset=test_data, batch_size=BATCH_SIZE)

# ============================ step 2/5 模型 ============================
device = torch.device(DEVICE)  # cpu, cuda:0

# net = LeNet(classes=2)
# net.initialize_weights()

if BACKBONE == 'resnet18':
    net = resnet18(num_classes=num_classes).to(device)
elif BACKBONE == 'resnet34':
    net = resnet34(num_classes=num_classes).to(device)
elif BACKBONE == 'resnet50':
    net = resnet50(num_classes=num_classes).to(device)
elif BACKBONE == 'densenet121':
    net = densenet121(num_classes=num_classes).to(device)
elif BACKBONE == 'mobilenet_v2':
    net = mobilenet_v2(num_classes=num_classes, width_mult=1.0, inverted_residual_setting=None, round_nearest=8).to(device)
elif BACKBONE == 'shufflenet_v2_x1_5':
    net = shufflenet_v2_x1_5(num_classes=num_classes).to(device)
elif BACKBONE == 'squeezenet1_0':
    net = squeezenet1_0(num_classes=num_classes).to(device)
elif BACKBONE == 'squeezenet1_1':
    net = squeezenet1_1(num_classes=num_classes).to(device)
elif BACKBONE == 'mnasnet0_5':
    net = mnasnet0_5(num_classes=num_classes).to(device)
elif BACKBONE == 'mnasnet1_0':
    net = mnasnet1_0(num_classes=num_classes).to(device)
elif BACKBONE == 'mobilenet_v1':
    net = MobileNetV1(num_classes=num_classes).to(device)
else:
Exemple #19
0
def create_model(model_name, num_classes=1000, pretrained=False, **kwargs):
    if 'test_time_pool' in kwargs:
        test_time_pool = kwargs.pop('test_time_pool')
    else:
        test_time_pool = True
    if 'extra' in kwargs:
        extra = kwargs.pop('extra')
    else:
        extra = True
    if model_name == 'dpn68':
        model = dpn68(num_classes=num_classes,
                      pretrained=pretrained,
                      test_time_pool=test_time_pool)
    elif model_name == 'dpn68b':
        model = dpn68b(num_classes=num_classes,
                       pretrained=pretrained,
                       test_time_pool=test_time_pool)
    elif model_name == 'dpn92':
        model = dpn92(num_classes=num_classes,
                      pretrained=pretrained,
                      test_time_pool=test_time_pool,
                      extra=extra)
    elif model_name == 'dpn92_re':
        model = dpn92_re(num_classes=num_classes,
                         pretrained=pretrained,
                         test_time_pool=test_time_pool,
                         extra=extra)
    elif model_name == 'dpn98':
        model = dpn98(num_classes=num_classes,
                      pretrained=pretrained,
                      test_time_pool=test_time_pool)
    elif model_name == 'dpn131':
        model = dpn131(num_classes=num_classes,
                       pretrained=pretrained,
                       test_time_pool=test_time_pool)
    elif model_name == 'dpn107':
        model = dpn107(num_classes=num_classes,
                       pretrained=pretrained,
                       test_time_pool=test_time_pool)
    elif model_name == 'resnet18':
        model = resnet18(num_classes=num_classes,
                         pretrained=pretrained,
                         **kwargs)
    elif model_name == 'resnet18_sigmoid':
        model = resnet18_sigmoid(num_classes=num_classes,
                                 pretrained=pretrained,
                                 **kwargs)
    elif model_name == 'resnet34':
        model = resnet34(num_classes=num_classes,
                         pretrained=pretrained,
                         **kwargs)
    elif model_name == 'resnet50':
        model = resnet50(num_classes=num_classes,
                         pretrained=pretrained,
                         **kwargs)
    elif model_name == 'resnet50_bestfitting':
        model = resnet50_bestfitting(num_classes=num_classes,
                                     pretrained=pretrained,
                                     **kwargs)
    elif model_name == 'resnet50_sigmoid':
        model = resnet50_sigmoid(num_classes=num_classes,
                                 pretrained=pretrained,
                                 **kwargs)
    elif model_name == 'resnet101':
        model = resnet101(num_classes=num_classes,
                          pretrained=pretrained,
                          **kwargs)
    elif model_name == 'resnet152':
        model = resnet152(num_classes=num_classes,
                          pretrained=pretrained,
                          **kwargs)
    elif model_name == 'resnet152_sigmoid':
        model = resnet152_sigmoid(num_classes=num_classes,
                                  pretrained=pretrained,
                                  **kwargs)
    elif model_name == 'densenet121':
        model = densenet121(num_classes=num_classes,
                            pretrained=pretrained,
                            **kwargs)
    elif model_name == 'densenet161':
        model = densenet161(num_classes=num_classes,
                            pretrained=pretrained,
                            **kwargs)
    elif model_name == 'densenet169':
        model = densenet169(num_classes=num_classes,
                            pretrained=pretrained,
                            **kwargs)
    elif model_name == 'densenet201':
        model = densenet201(num_classes=num_classes,
                            pretrained=pretrained,
                            **kwargs)
    elif model_name == 'inception_v3':
        model = inception_v3(num_classes=num_classes,
                             pretrained=pretrained,
                             transform_input=False,
                             **kwargs)
    elif model_name == 'vgg16_bn':
        model = vgg16_bn(num_classes=num_classes,
                         pretrained=pretrained,
                         **kwargs)
    elif model_name == 'ConvNet_sigmoid':
        model = ConvNet()
    else:
        assert False, "Unknown model architecture (%s)" % model_name
    return model