Main Content

analyzeNetworkForCodegen

コード生成のための深層学習ネットワークの解析

R2022b 以降

    説明

    result = analyzeNetworkForCodegen(net) は、コード生成のために深層学習ネットワーク net を解析し、ネットワークと層の互換性の問題を報告します。ネットワークは、SeriesNetworkDAGNetwork、または dlnetwork オブジェクトでなければなりません。既定では、関数は既定の CPU と GPU の深層学習ライブラリ ターゲットから成るセットに対して検証を行います。

    ___ = analyzeNetworkForCodegen(___,Name,Value) は、1 つ以上の Name,Value ペアの引数で指定されたオプションを使用して、コード生成のために深層学習ネットワーク net を解析します。

    すべて折りたたむ

    この例では、関数 analyzeNetworkForCodegen を使用して、MobileNet-v2 ネットワークのコード生成互換性をチェックする方法を示します。

    関数 analyzeNetworkForCodegen を使用して、CPU および GPU のさまざまな深層学習ライブラリ ターゲットを対象とする場合について、ネットワークと層の互換性の問題を判定できます。

    MobileNet-v2 サポート パッケージのダウンロード

    この例では、"Deep Learning Toolbox™ Model for MobileNet-v2 Network" サポート パッケージから入手できる MobileNet-v2 の事前学習済みバージョンを使用します。

    MobileNet-v2 は、深さが 53 層の畳み込みニューラル ネットワークです。ネットワークの事前学習済みバージョンは、ImageNet データベースからの 100 万個を超えるイメージで学習させています。事前学習済みネットワークのイメージ入力サイズは 224×224 で、イメージを 1000 個のオブジェクト カテゴリ (キーボード、マウス、鉛筆、多くの動物など) に分類できます。

    mobilenetv2
    ans = 
      DAGNetwork with properties:
    
             Layers: [154x1 nnet.cnn.layer.Layer]
        Connections: [163x2 table]
         InputNames: {'input_1'}
        OutputNames: {'ClassificationLayer_Logits'}
    
    

    Deep Learning Toolbox Model for MobileNet-v2 Network サポート パッケージがインストールされていない場合、この関数は、必要なサポート パッケージへのリンクをアドオン エクスプローラーに表示します。サポート パッケージをインストールするには、リンクをクリックして、[インストール] をクリックします。

    コード生成のためのネットワークの解析

    解析するターゲット ライブラリを指定し、mobilenetv2 に対して関数 analyzeNetworkForCodegen を実行します。関数 analyzeNetworkForCodegen には、"MATLAB® Coder™ Interface for Deep Learning" および "GPU Coder™ Interface for Deep Learning" サポート パッケージが必要です。必要なサポート パッケージをインストールするには、アドオン エクスプローラーを使用します。

    targetLibraries = ["cudnn","tensorrt","arm-compute-mali",...
        "arm-compute","mkldnn","none","cmsis-nn"];
    S = analyzeNetworkForCodegen(mobilenetv2,TargetLibrary  = targetLibraries);
                            Supported                                                                                    LayerDiagnostics                                                                                 
                            _________    _________________________________________________________________________________________________________________________________________________________________________________
    
        cudnn                 "Yes"      ""                                                                                                                                                                               
        tensorrt              "Yes"      ""                                                                                                                                                                               
        arm-compute-mali      "Yes"      ""                                                                                                                                                                               
        arm-compute           "Yes"      ""                                                                                                                                                                               
        mkldnn                "Yes"      ""                                                                                                                                                                               
        none                  "Yes"      ""                                                                                                                                                                               
        cmsis-nn              "No"       "Found 6 unsupported layer type(s). View incompatible layer types."
    

    CMSIS-NN ターゲットの解析結果にアクセスするには、次のコマンドを使用します。

    disp(S(7))
                 TargetLibrary: 'cmsis-nn'
                     Supported: 0
            NetworkDiagnostics: [0x0 table]
              LayerDiagnostics: [150x3 table]
        IncompatibleLayerTypes: [6x1 string]
    

    CMSIS-NN コード生成でサポートされていない層タイプを表示します。

    S(7).IncompatibleLayerTypes
    ans = 6x1 string
        "AdditionLayer"
        "BatchNormalizationLayer"
        "ClippedReLULayer"
        "Convolution2DLayer"
        "GlobalAveragePooling2DLayer"
        "GroupedConvolution2DLayer"
    
    

    入力引数

    すべて折りたたむ

    コード生成のために解析するネットワーク。ネットワークは、カスタム学習ループまたはカスタム枝刈りループのための SeriesNetwork オブジェクト、DAGNetwork オブジェクト、または dlnetwork オブジェクトにすることができます。

    名前と値の引数

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

    R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

    例: resultStruct = analyzeNetworkForCodegen(mobilenetv2, TargetLibrary = ["mkldnn", "none"]);

    深層学習コード生成用のターゲット ライブラリ。次の表のいずれかの値を指定します。

    説明
    "none"

    サードパーティ ライブラリを使用しないコードの生成用。

    "arm-compute"

    ARM® Compute Library を使用するコードの生成用。

    "mkldnn"

    Intel® Math Kernel Library for Deep Neural Networks (Intel MKL-DNN) を使用するコードの生成用。

    "cmsis-nn"

    Common Microcontroller Software Interface Standard - Neural Network (CMSIS-NN) ライブラリ。

    MATLAB® Coder™ Interface for Deep Learning が必要です。

    "cudnn"

    CUDA® Deep Neural Network library (cuDNN) を使用するコードの生成用。

    このオプションには GPU Coder™ が必要です。

    "tensorrt"

    NVIDIA® TensorRT (高性能な深層学習用推論オプティマイザーおよびランタイム ライブラリ) を利用するコードの生成用。

    このオプションには GPU Coder が必要です。

    レポートの表示を抑制するためのスカラーの boolean 値。既定では、関数は詳細モードで解析を表示します。

    出力引数

    すべて折りたたむ

    深層学習ネットワークのコード生成互換性チェックの結果。1N 列の構造体として返されます。ここで、N はチェックするターゲット ライブラリの数です。

    バージョン履歴

    R2022b で導入