メインコンテンツ

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

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)

 

シーケンス層

汎用 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)

ユーティリティ層

汎用 C/C++

Intel MKL-DNN および

ARM Compute Library

crop2dLayer (Deep Learning Toolbox)

dropoutLayer (Deep Learning Toolbox)

istftLayer (Signal Processing Toolbox)

 

modwtLayer (Wavelet Toolbox)

 

reshapeLayer (Deep Learning Toolbox)

 

scalingLayer (Deep Learning Toolbox)

spatialDropoutLayer (Deep Learning Toolbox)

stftLayer (Signal Processing 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)

 

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

汎用 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

Custom layers

 詳細

 コード生成の制限

Custom Output Layer (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 (Lidar Toolbox)

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

トピック