译者:BXuan694
models子包定义了以下模型架构:
你可以通过调用以下构造函数构造随机权重的模型:
import torchvision.models as models
resnet18 = models.resnet18()
alexnet = models.alexnet()
vgg16 = models.vgg16()
squeezenet = models.squeezenet1_0()
densenet = models.densenet161()
inception = models.inception_v3()
torch.utils.model_zoopretrained=True
import torchvision.models as models
resnet18 = models.resnet18(pretrained=True)
alexnet = models.alexnet(pretrained=True)
squeezenet = models.squeezenet1_0(pretrained=True)
vgg16 = models.vgg16(pretrained=True)
densenet = models.densenet161(pretrained=True)
inception = models.inception_v3(pretrained=True)
TORCH_MODEL_ZOOtorch.utils.model_zoo.load_url()
model.train()model.eval()train()eval()
mean = [0.485, 0.456, 0.406]std = [0.229, 0.224, 0.225]
normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
在imagenet的示例中可以看到标准化的一个应用。
下表是ImageNet单次224x224中心裁剪的错误率。
网络 |
Top-1错误率(%) |
Top-5错误率(%) |
AlexNet |
43.45 |
20.91 |
VGG-11 |
30.98 |
11.37 |
VGG-13 |
30.07 |
10.75 |
VGG-16 |
28.41 |
9.62 |
VGG-19 |
27.62 |
9.12 |
带有批标准化的VGG-11 |
29.62 |
10.19 |
带有批标准化的VGG-13 |
28.45 |
9.63 |
带有批标准化的VGG-16 |
26.63 |
8.50 |
带有批标准化的VGG-19 |
25.76 |
8.15 |
ResNet-18 |
30.24 |
10.92 |
ResNet-34 |
26.70 |
8.58 |
ResNet-50 |
23.85 |
7.13 |
ResNet-101 |
22.63 |
6.44 |
ResNet-152 |
21.69 |
5.94 |
SqueezeNet 1.0 |
41.90 |
19.58 |
SqueezeNet 1.1 |
41.81 |
19.38 |
Densenet-121 |
25.35 |
7.83 |
Densenet-169 |
24.00 |
7.00 |
Densenet-201 |
22.80 |
6.43 |
Densenet-161 |
22.35 |
6.20 |
Inception v3 |
22.55 |
6.44 |
Alexnet
torchvision.models.alexnet(pretrained=False, **kwargs)
AlexNet模型,参见论文《One weird trick…》 。
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
VGG
torchvision.models.vgg11(pretrained=False, **kwargs)
VGG11模型。(论文中的“A”模型)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.vgg11_bn(pretrained=False, **kwargs)
VGG11模型,�带有批标准化。(论文中的“A”模型)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.vgg13(pretrained=False, **kwargs)
VGG13模型。(论文中的“B”模型)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.vgg13_bn(pretrained=False, **kwargs)
VGG13模型,�带有批标准化。(论文中的“B”模型)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.vgg16(pretrained=False, **kwargs)
VGG16模型。(论文中的“D”模型)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.vgg16_bn(pretrained=False, **kwargs)
VGG16模型,�带有批标准化。(论文中的“D”模型)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.vgg19(pretrained=False, **kwargs)
VGG19模型。(论文中的“E”模型)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.vgg19_bn(pretrained=False, **kwargs)
VGG19模型,�带有批标准化。(论文中的“E”模型)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
ResNet
torchvision.models.resnet18(pretrained=False, **kwargs)
构造ResNet-18模型。
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.resnet34(pretrained=False, **kwargs)
构造ResNet-34模型。
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.resnet50(pretrained=False, **kwargs)
构造ResNet-50模型。
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.resnet101(pretrained=False, **kwargs)
构造ResNet-101模型。
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.resnet152(pretrained=False, **kwargs)
构造ResNet-152模型。
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
SqueezeNet
torchvision.models.squeezenet1_0(pretrained=False, **kwargs)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.squeezenet1_1(pretrained=False, **kwargs)
SqueezeNet 1.1模型,参见SqueezeNet官方仓库。SqueezeNet 1.1比SqueezeNet 1.0节约2.4倍的计算量,参数也略少,然而精度未做牺牲。
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
DenseNet
torchvision.models.densenet121(pretrained=False, **kwargs)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.densenet169(pretrained=False, **kwargs)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.densenet161(pretrained=False, **kwargs)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
torchvision.models.densenet201(pretrained=False, **kwargs)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |
Inception v3
torchvision.models.inception_v3(pretrained=False, **kwargs)
参数: |
pretrained (bool) – 如果设置为True,返回ImageNet预训练模型 |