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
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
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
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
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))
def get_denset_backbone_layers(pretrained: bool): dnet = densenet121(pretrained=pretrained) original_model = list(dnet.children())[0] return nn.ModuleList(original_model.children()), 1024
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)
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 __init__(self): super(DenseNet121, self).__init__() densenet = densenet121(pretrained=True) self.features = densenet.features
# 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:
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