メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

visionTransformer

事前学習済みビジョン トランスフォーマー (ViT) ニューラル ネットワーク

R2023b 以降

    説明

    [net,classNames] = visionTransformer は、パッチ サイズが 16 である基本サイズの ViT ニューラル ネットワーク (8,680 万パラメーター) を返します。ネットワークは、解像度が 384×384 である ImageNet 2012 データ セットを使用して微調整されます。

    この機能には、Deep Learning Toolbox™ ライセンスと Computer Vision Toolbox™ Model for Vision Transformer Network サポート パッケージが必要です。このサポート パッケージは、アドオン エクスプローラーからダウンロードできます。詳細については、アドオンの取得と管理を参照してください。

    [net,classNames] = visionTransformer(modelName) は、指定されたモデル名をもつ ViT ニューラル ネットワークを返します。

    [net,classNames] = visionTransformer(___,Name=Value) は、1 つ以上の名前と値の引数を使用して追加のオプションを指定します。

    すべて折りたたむ

    visionTransformer 関数を使用して、事前学習済みの ViT ニューラル ネットワークを読み込みます。Computer Vision Toolbox Model "for Vision Transformer Network" サポート パッケージがインストールされていない場合、この関数は、必要なサポート パッケージへのリンクをアドオン エクスプローラーに表示します。サポート パッケージをインストールするには、リンクをクリックして、[インストール] をクリックします。

    事前学習済みの ViT ニューラル ネットワークとクラス名を読み込みます。必要なサポート パッケージがインストールされている場合、この関数は、dlnetwork オブジェクト、およびクラス名の string 配列を返します。

    [net,classNames] = visionTransformer;

    ニューラル ネットワークを表示します。

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

    クラス数を表示します。

    numClasses = numel(classNames)
    numClasses = 
    1000
    

    入力引数

    すべて折りたたむ

    モデル名。次のいずれかの値として指定します。

    • "base-16-imagenet-384" — パッチ サイズが 16 である基本サイズ モデル (8,680 万パラメーター)。ネットワークは、解像度が 384×384 である ImageNet 2012 データ セットを使用して微調整されます。

    • "small-16-imagenet-384" — パッチ サイズが 16 である小型モデル (2,210 万パラメーター)。ネットワークは、解像度が 384×384 である ImageNet 2012 データ セットを使用して微調整されます。

    • "tiny-16-imagenet-384" — パッチ サイズが 16 である極小モデル (570 万パラメーター)。ネットワークは、解像度が 384×384 である ImageNet 2012 データ セットを使用して微調整されます。

    名前と値の引数

    すべて折りたたむ

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

    例: visionTransformer(DropoutProbability=0.2) は、ドロップアウトの確率が 0.2 に設定された、事前学習済みのビジョン トランスフォーマー ニューラル ネットワークを返します。

    ドロップアウト層で入力要素をドロップアウトする確率。範囲 [0, 1) のスカラーとして指定します。

    ドロップアウト層を使用してニューラル ネットワークに学習させる場合、層はドロップアウト マスク rand(size(X)) < p を使用して入力要素をランダムにゼロに設定します。ここで、X は層の入力、p は層のドロップアウトの確率です。その後、層は残りの要素を 1/(1-p) でスケーリングします。

    この操作は、ネットワークの過適合を防ぐのに役立ちます[2][3]。大きい数値を指定するほど、ネットワークによって学習時にドロップされる要素の数が増加します。予測時には、この層の出力はその入力と等しくなります。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    注意層で入力要素をドロップアウトする確率。範囲 [0, 1) のスカラーとして指定します。

    注意層を使用してニューラル ネットワークに学習させる場合、層はドロップアウト マスク rand(size(scores)) < p を使用してアテンション スコアをランダムにゼロに設定します。ここで、scores は層の入力、p は層のドロップアウトの確率です。その後、層は残りの要素を 1/(1-p) でスケーリングします。

    この操作は、ネットワークの過適合を防ぐのに役立ちます[2][3]。大きい数値を指定するほど、ネットワークによって学習時にドロップされる要素の数が増加します。予測時には、この層の出力はその入力と等しくなります。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    出力引数

    すべて折りたたむ

    事前学習済みの ViT ニューラル ネットワーク。dlnetwork (Deep Learning Toolbox) オブジェクトとして返されます。

    クラス名。string 配列として返されます。

    参照

    [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)