主要内容

本页采用了机器翻译。点击此处可查看英文原文。

visionTransformer

预训练的视觉变换器 (ViT) 神经网络

自 R2023b 起

    说明

    [net,classNames] = visionTransformer 返回一个基数大小的 ViT 神经网络(8680 万个参数),其补丁大小为 16。该网络使用分辨率为 384×384 的 ImageNet 2012 数据集进行了微调。

    此特征需要 Deep Learning Toolbox™ 许可证以及 Computer Vision Toolbox™ 视觉变换器网络模型支持包。您可以从附加功能资源管理器下载此支持包。有关详细信息,请参阅获取和管理附加功能

    示例

    [net,classNames] = visionTransformer(modelName) 返回具有指定模型名称的 ViT 神经网络。

    [net,classNames] = visionTransformer(___,Name=Value) 使用一个或多个名称-值参量指定其他选项。

    示例

    全部折叠

    使用 visionTransformer 函数加载一个预训练的 ViT 神经网络。如果未安装 Computer Vision Toolbox™ Model for Vision Transformer Network 支持包,则该函数会在附加功能资源管理器中提供指向所需支持包的链接。要安装支持包,请点击链接,然后点击安装

    加载一个预训练的 ViT 神经网络及其类名。如果已安装所需的支持包,则该函数将返回一个 dlnetwork 对象和一个类名的字符串数组。

    [net,classNames] = visionTransformer;

    查看神经网络。

    net
    net = 
      dlnetwork with properties:
    
             Layers: [143×1 nnet.cnn.layer.Layer]
        Connections: [167×2 table]
         Learnables: [200×3 table]
              State: [1×3 table]
         InputNames: {'imageinput'}
        OutputNames: {'softmax'}
        Initialized: 1
    
      View summary with summary.
    
    

    查看类数。

    numClasses = numel(classNames)
    numClasses = 
    1000
    

    输入参数

    全部折叠

    模型名称,应指定为以下值之一:

    模型名称神经网络名称参数内存参数(单位为百万)图像输入大小输入值范围输入层归一化
    "base-16-imagenet-384"

    一个基数大小的 ViT 模型,其补丁大小为 16,使用分辨率为 384×384 的 ImageNet 2012 数据集进行微调。

    331 MB86.8384×384[0, 255]"zscore"
    "small-16-imagenet-384"一种小规模的 ViT 模型,其补丁大小为 16,使用分辨率为 384×384 的 ImageNet 2012 数据集进行微调。85 MB22.1384×384[0, 255]"zscore"
    "tiny-16-imagenet-384"一种微型 ViT 模型,其补丁大小为 16,使用 ImageNet 2012 数据集在 384×384 的分辨率下进行了微调22 MB5.7384×384[0, 255]"zscore"

    名称-值参数

    全部折叠

    将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

    示例: visionTransformer(DropoutProbability=0.2) 返回一个预训练的视觉变换器神经网络,其 dropout 概率设置为 0.2。

    dropout 层中舍弃输入元素的概率,指定为 [0, 1) 范围内的标量。

    在训练包含 dropout 层的神经网络时,该层会使用 dropout 掩膜 rand(size(X)) < p 将输入元素随机设为零,其中 X 是该层的输入,p 是该层的 dropout 概率。然后,该图层会将剩余的元素按 1/(1-p) 进行缩放。

    此操作有助于防止网络对 [2][3] 产生过拟合。该数值越大,网络在训练过程中丢弃的元素就越多。在预测时,层的输出等于其输入。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    在注意力层中舍弃输入元素的概率,指定为 [0, 1) 范围内的标量。

    在训练带有注意力层的神经网络时,该层会使用 dropout 掩膜 rand(size(scores)) < p 将注意力得分随机设为零,其中 scores 是该层的输入,p 是该层的 dropout 概率。然后,该图层会将剩余的元素按 1/(1-p) 进行缩放。

    此操作有助于防止网络对 [2][3] 产生过拟合。该数值越大,网络在训练过程中丢弃的元素就越多。在预测时,层的输出等于其输入。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    输出参量

    全部折叠

    预训练的 ViT 神经网络,以 dlnetwork (Deep Learning Toolbox) 对象的形式返回。

    类名,以字符串数组的形式返回。

    参考

    [1] Dosovitskiy, Alexey, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani et al. "An Image is Worth 16x16 words: Transformers for Image Recognition at Scale." Preprint, submitted June 3, 2021. https://doi.org/10.48550/arXiv.2010.11929.

    [2] Srivastava, Nitish, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. "Dropout: A Simple Way to Prevent Neural Networks from Overfitting." The Journal of Machine Learning Research 15, no. 1 (January 1, 2014): 1929–58

    [3] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks." Communications of the ACM 60, no. 6 (May 24, 2017): 84–90. https://doi.org/10.1145/3065386.

    扩展功能

    全部展开

    版本历史记录

    在 R2023b 中推出

    另请参阅

    | (Deep Learning Toolbox) | (Deep Learning Toolbox) | (Deep Learning Toolbox)