メインコンテンツ

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

コード生成でサポートされているネットワークとレイヤー

R2026a

MATLAB® Coder™ では、dlnetwork (Deep Learning Toolbox) ネットワーク、系列ネットワーク、および有向非循環グラフ (DAG) ネットワークのコード生成がサポートされています。サポートされている深層学習ネットワーク、層、およびクラスを使用する任意の学習済みのニューラル ネットワークのコードを生成できます。

サポートされている事前学習済みネットワーク

これらの事前学習済みネットワークは Deep Learning Toolbox™ で利用でき、コード生成をサポートしています。imagePretrainedNetwork (Deep Learning Toolbox)関数を使用して、コード生成用に dlnetwork (Deep Learning Toolbox) オブジェクトとしてこれらの事前学習済みニューラル ネットワークを読み込むことができます。コード生成では、imagePretrainedNetwork 関数の名前と値の引数 Weights を "none" に設定することはサポートされていないことに注意してください。たとえば、次のコードを使用して、事前学習済みの GoogLeNet ニューラル ネットワークを読み込みます。

net = imagePretrainedNetwork("googlenet")

ネットワークが特定の深層学習ライブラリのコード生成と互換性があるかどうかを analyzeNetworkForCodegen を使用して確認できます。以下に例を示します。

result = analyzeNetworkForCodegen(imagePretrainedNetwork("googlenet"),TargetLibrary='none')

imagePretrainedNetwork のモデル名引数汎用 C/C++

Intel® MKL-DNN および

ARM® Compute Library

"alexnet"

"darknet19"

"darknet53"

"densenet201"

"efficientnetb0"

"googlenet"

"inceptionresnetv2"

"inceptionv3"

"mobilenetv2"

"nasnetlarge"

 

"nasnetmobile"

 

"resnet18"

"resnet50"

"resnet101"

"shufflenet"

 

メモ

ARM Compute Library は shufflenet ではサポートされていません。

"squeezenet"

"vgg16"

"vgg19"

"xception"

サポートされている層

表に指定されているターゲット深層学習ライブラリについて、次の層がコード生成でサポートされています。

メモ

次の表で、情報アイコン は、ネットワーク、層、またはクラスのコード生成機能が制限されていることを示しています。エラーや予期しない動作が発生する可能性があります。詳細については、該当するネットワーク、層、またはクラスのページの「拡張機能」セクションを参照してください。

入力層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

imageInputLayer (Deep Learning Toolbox)

sequenceInputLayer (Deep Learning Toolbox)

featureInputLayer (Deep Learning Toolbox)

畳み込み層と全結合層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

convolution1dLayer (Deep Learning Toolbox)

 

convolution2dLayer (Deep Learning Toolbox)

fullyConnectedLayer (Deep Learning Toolbox)

groupedConvolution2dLayer (Deep Learning Toolbox)

メモ

グループの数がフィルター チャネルの数と等しい場合、チャネル方向の畳み込み用の汎用 C/C++ コードを生成できます。

transposedConv1dLayer (Deep Learning Toolbox)

 

transposedConv2dLayer (Deep Learning Toolbox)

spectralConvolution1dLayer (Deep Learning Toolbox)

 

spectralConvolution2dLayer (Deep Learning Toolbox)

 

spectralConvolution3dLayer (Deep Learning Toolbox)

 

シーケンス層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

bilstmLayer (Deep Learning Toolbox)

flattenLayer (Deep Learning Toolbox)

gruProjectedLayer (Deep Learning Toolbox)

 

gruLayer (Deep Learning Toolbox)

lstmLayer (Deep Learning Toolbox)

lstmProjectedLayer (Deep Learning Toolbox)

 

sequenceInputLayer (Deep Learning Toolbox)

wordEmbeddingLayer (Text Analytics Toolbox)

活性化層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

clippedReluLayer (Deep Learning Toolbox)

eluLayer (Deep Learning Toolbox)

gelu (Deep Learning Toolbox)

geluLayer (Deep Learning Toolbox)

leakyReluLayer (Deep Learning Toolbox)

preluLayer (Deep Learning Toolbox)

reluLayer (Deep Learning Toolbox)

sigmoidLayer (Deep Learning Toolbox)

softmaxLayer (Deep Learning Toolbox)

softplusLayer (Deep Learning Toolbox)

swishLayer (Deep Learning Toolbox)

tanhLayer (Deep Learning Toolbox)

正規化層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

batchNormalizationLayer (Deep Learning Toolbox)

crossChannelNormalizationLayer (Deep Learning Toolbox)

 

instanceNormalizationLayer (Deep Learning Toolbox)

layerNormalizationLayer (Deep Learning Toolbox)

groupNormalizationLayer (Deep Learning Toolbox)

inverseNormalizationLayer (Deep Learning Toolbox)

ユーティリティ層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

crop2dLayer (Deep Learning Toolbox)

dropoutLayer (Deep Learning Toolbox)

reshapeLayer (Deep Learning Toolbox)

 

scalingLayer (Deep Learning Toolbox)

spatialDropoutLayer (Deep Learning Toolbox)

サイズ変更層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

resize2dLayer (Image Processing Toolbox)

プーリング層と逆プーリング層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

adaptiveAveragePooling2dLayer (Deep Learning Toolbox)

averagePooling1dLayer (Deep Learning Toolbox)

 

averagePooling2dLayer (Deep Learning Toolbox)

globalAveragePooling1dLayer (Deep Learning Toolbox)

 

globalAveragePooling2dLayer (Deep Learning Toolbox)

globalMaxPooling1dLayer (Deep Learning Toolbox)

 

globalMaxPooling2dLayer (Deep Learning Toolbox)

maxPooling1dLayer (Deep Learning Toolbox)

 

maxPooling2dLayer (Deep Learning Toolbox)

maxUnpooling2dLayer (Deep Learning Toolbox)

 

メモ

ARM Compute Library は maxUnpooling2dLayer ではサポートされていません。

結合層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

additionLayer (Deep Learning Toolbox)

concatenationLayer (Deep Learning Toolbox)

depthConcatenationLayer (Deep Learning Toolbox)

multiplicationLayer (Deep Learning Toolbox)

トランスフォーマー層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

AttentionLayer (Deep Learning Toolbox)

 

embeddingConcatenationLayer (Deep Learning Toolbox)

 

indexing1dLayer (Deep Learning Toolbox)

 

patchEmbeddingLayer (Computer Vision Toolbox)

 

PositionEmbeddingLayer (Deep Learning Toolbox)

 

selfAttentionLayer (Deep Learning Toolbox)

 

embeddingLayer (Deep Learning Toolbox)

 

コンピューター ビジョンおよびイメージ処理層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

depthToSpace2dLayer (Image Processing Toolbox)

patchEmbeddingLayer (Computer Vision Toolbox)

 

spaceToDepthLayer (Image Processing Toolbox)

ssdMergeLayer (Computer Vision Toolbox)

resize2dLayer (Image Processing Toolbox)

yolov2TransformLayer (Computer Vision Toolbox)

信号変換層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

cwtLayer (Wavelet Toolbox) (R2026a 以降)

 

icwtLayer (Wavelet Toolbox) (R2026a 以降)

 

istftLayer (Signal Processing Toolbox) (R2025a 以降)

 

modwtLayer (Wavelet Toolbox) (R2025a 以降)

 

stftLayer (Signal Processing Toolbox) (R2025a 以降)

 

カスタム層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

Custom layers

カスタム層は、問題に対して定義する層です。学習可能なパラメーターの有無は任意です。

詳細については、以下を参照してください。

  • カスタム層の出力は固定サイズの配列でなければなりません。

  • シーケンス ネットワークにおけるカスタム層は汎用 C/C++ コード生成でのみサポートされます。

  • コード生成では、カスタム層に %#codegen プラグマが含まれている必要があります。

  • 次の場合は、カスタム層に dlarray を渡すことができます。

    • カスタム層が dlnetwork にある。

    • カスタム層が DAG または系列ネットワークにあり、nnet.layer.Formattable から継承されるか、逆伝播がない。

  • dlarray メソッドがサポートされていない場合は、dlarray から基となるデータを抽出し、計算を実行して、データをコード生成用に dlarray に再構成する必要があります。以下に例を示します。

    function Z = predict(layer, X)
    
    if coder.target('MATLAB')
       Z = doPredict(X);
    else
       if isdlarray(X)
          X1 = extractdata(X);
          Z1 = doPredict(X1);
          Z = dlarray(Z1);
      else
          Z = doPredict(X);
      end
    end
    
    end
    

Custom Output Layer (Deep Learning Toolbox)

  • nnet.layer.ClassificationLayer または nnet.layer.RegressionLayer 関数によって作成される、カスタム分類出力層または回帰出力層を含む出力層。

  • カスタム分類出力層を定義して損失関数を指定する方法を示す例については、カスタム分類出力層の定義 (Deep Learning Toolbox)を参照してください。

  • カスタム回帰出力層を定義して損失関数を指定する方法を示す例については、カスタム回帰出力層の定義 (Deep Learning Toolbox)を参照してください。

カスタム Keras 層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

nnet.keras.layer.ClipLayer (Deep Learning Toolbox)

nnet.keras.layer.FlattenCStyleLayer (Deep Learning Toolbox)

nnet.keras.layer.GlobalAveragePooling2dLayer (Deep Learning Toolbox)

nnet.keras.layer.PreluLayer (Deep Learning Toolbox)

nnet.keras.layer.SigmoidLayer (Deep Learning Toolbox)

nnet.keras.layer.TanhLayer (Deep Learning Toolbox)

nnet.keras.layer.TimeDistributedFlattenCStyleLayer (Deep Learning Toolbox)

nnet.keras.layer.ZeroPadding2dLayer (Deep Learning Toolbox)

カスタム ONNX 層

層汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

nnet.onnx.layer.ClipLayer (Deep Learning Toolbox)

nnet.onnx.layer.ElementwiseAffineLayer (Deep Learning Toolbox)

nnet.onnx.layer.FlattenInto2dLayer (Deep Learning Toolbox)

nnet.onnx.layer.FlattenLayer (Deep Learning Toolbox)

nnet.onnx.layer.GlobalAveragePooling2dLayer (Deep Learning Toolbox)

nnet.onnx.layer.IdentityLayer (Deep Learning Toolbox)

nnet.onnx.layer.PreluLayer (Deep Learning Toolbox)

nnet.onnx.layer.SigmoidLayer (Deep Learning Toolbox)

nnet.onnx.layer.TanhLayer (Deep Learning Toolbox)

nnet.onnx.layer.VerifyBatchSizeLayer (Deep Learning Toolbox)

サポートされているクラス

クラス

汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

dlnetwork (Deep Learning Toolbox)

DAGNetwork (Deep Learning Toolbox)

pointPillarsObjectDetector

SeriesNetwork (Deep Learning Toolbox)

ssdObjectDetector (Computer Vision Toolbox)

yolov2ObjectDetector (Computer Vision Toolbox)

 

yolov3ObjectDetector (Computer Vision Toolbox)

yolov4ObjectDetector (Computer Vision Toolbox)

yoloxObjectDetector (Computer Vision Toolbox)

peopleDetector (Computer Vision Toolbox) (R2025a 以降)

 

参考

(Deep Learning Toolbox) |

トピック