torchvision.models

    models子包定义了以下模型架构:

    你可以通过调用以下构造函数构造随机权重的模型:

    我们在中提供了预训练模型。预训练模型可以通过传递参数pretrained=True构造:

    1. resnet18 = models.resnet18(pretrained=True)
    2. alexnet = models.alexnet(pretrained=True)
    3. squeezenet = models.squeezenet1_0(pretrained=True)
    4. vgg16 = models.vgg16(pretrained=True)
    5. densenet = models.densenet161(pretrained=True)
    6. inception = models.inception_v3(pretrained=True)

    定义预训练模型时会把权值下载到一个缓存文件夹中,这个缓存文件可以通过环境变量TORCH_MODEL_ZOO来指定。更多细节见。

    有些模型在训练和测试阶段用到了不同的模块,例如批标准化(batch normalization)。使用model.train()或可以切换到相应的模式。更多细节见train()或。

    所有的预训练模型都要求输入图片以相同的方式进行标准化,即:小批(mini-batch)三通道RGB格式(3 x H x W),其中H和W不得小于224。图片加载时像素值的范围应在[0, 1]内,然后通过指定mean = [0.485, 0.456, 0.406]std = [0.229, 0.224, 0.225]进行标准化,例如:

    1. normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
    2. std=[0.229, 0.224, 0.225])

    imagenet的示例中可以看到标准化的一个应用。

    下表是ImageNet单次224x224中心裁剪的错误率。

    1. torchvision.models.alexnet(pretrained=False, **kwargs)

    AlexNet模型,参见论文 。

    参数: pretrained (bool) – 如果设置为True,返回ImageNet预训练模型

    VGG

    1. torchvision.models.vgg11(pretrained=False, **kwargs)
    参数: pretrained (bool) – 如果设置为True,返回ImageNet预训练模型
    1. torchvision.models.vgg11_bn(pretrained=False, **kwargs)

    VGG11模型,带有批标准化。(论文中的“A”模型)

    参数: pretrained () – 如果设置为True,返回ImageNet预训练模型
    1. torchvision.models.vgg13(pretrained=False, **kwargs)

    VGG13模型。(论文中的“B”模型)

    参数: pretrained (bool) – 如果设置为True,返回ImageNet预训练模型

      VGG13模型,带有批标准化。(论文中的“B”模型)

      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型

      VGG16模型。(论文中的“D”模型)

      参数: pretrained (bool) – 如果设置为True,返回ImageNet预训练模型

      VGG16模型,带有批标准化。(论文中的“D”模型)

      1. torchvision.models.vgg19(pretrained=False, **kwargs)

      VGG19模型。(论文中的“E”模型)

      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.vgg19_bn(pretrained=False, **kwargs)

      VGG19模型,带有批标准化。(论文中的“E”模型)

      参数: pretrained (bool) – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.resnet18(pretrained=False, **kwargs)

      构造ResNet-18模型。

      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.resnet34(pretrained=False, **kwargs)

      构造ResNet-34模型。

      参数: pretrained (bool) – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.resnet50(pretrained=False, **kwargs)
      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.resnet101(pretrained=False, **kwargs)

      构造ResNet-101模型。

      参数: pretrained (bool) – 如果设置为True,返回ImageNet预训练模型

      构造ResNet-152模型。

      SqueezeNet

      1. torchvision.models.squeezenet1_0(pretrained=False, **kwargs)

      SqueezeNet模型,参见论文《SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size》

      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.squeezenet1_1(pretrained=False, **kwargs)

      SqueezeNet 1.1模型,参见SqueezeNet官方仓库。SqueezeNet 1.1比SqueezeNet 1.0节约2.4倍的计算量,参数也略少,然而精度未做牺牲。

      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.densenet121(pretrained=False, **kwargs)

      Densenet-121模型,参见《Densely Connected Convolutional Networks》

      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.densenet169(pretrained=False, **kwargs)

      Densenet-169模型,参见《Densely Connected Convolutional Networks》

      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型
      1. torchvision.models.densenet161(pretrained=False, **kwargs)

      Densenet-161模型,参见《Densely Connected Convolutional Networks》

      参数: pretrained () – 如果设置为True,返回ImageNet预训练模型

        Densenet-201模型,参见《Densely Connected Convolutional Networks》

        参数: pretrained () – 如果设置为True,返回ImageNet预训练模型

        Inception v3

        1. torchvision.models.inception_v3(pretrained=False, **kwargs)

        Inception v3模型,参见。