最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

MATLAB® Coder™ は、系列ネットワークおよび有向非循環グラフ (DAG) 畳み込みニューラル ネットワーク (CNN または ConvNet) のコード生成をサポートします。コード生成でサポートされている層の学習済みの畳み込みニューラル ネットワークのコードを生成できます。サポートされている層を参照してください。

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

次の事前学習済みネットワークは Deep Learning Toolbox™ で利用でき、コード生成をサポートしています。

ネットワーク名説明ARM® Compute LibraryIntel® MKL-DNN
AlexNet

AlexNet 畳み込みニューラル ネットワーク。事前学習済みの AlexNet モデルについては、alexnet を参照してください。

はいはい
GoogLeNet

GoogLeNet 畳み込みニューラル ネットワーク。事前学習済みの GoogLeNet モデルについては、googlenet を参照してください。

はいはい
Inception-v3Inception-v3 畳み込みニューラル ネットワーク。事前学習済みの Inception-v3 モデルについては、inceptionv3 を参照してください。はいはい
MobileNet-v2

MobileNet-v2 畳み込みニューラル ネットワーク。事前学習済みの MobileNet-v2 モデルについては mobilenetv2 を参照してください。

はいはい
ResNet

ResNet-50 および ResNet-101 畳み込みニューラル ネットワーク。事前学習済みの ResNet モデルについては、resnet50 および resnet101 を参照してください。

はいはい
SegNet

複数クラスのピクセル単位のセグメンテーション ネットワーク。詳細については、segnetLayers を参照してください。

いいえはい
SqueezeNet

小規模のディープ ニューラル ネットワーク。事前学習済みの ResNet モデルについては、squeezenet を参照してください。

はいはい
VGG-16

VGG-16 畳み込みニューラル ネットワーク。事前学習済みの VGG-16 モデルについては、vgg16 を参照してください。

はいはい
VGG-19

VGG-19 畳み込みニューラル ネットワーク。事前学習済みの VGG-19 モデルについては、vgg19 を参照してください。

はいはい

サポートされている層

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

サポート パッケージの MATLAB Coder Interface for Deep Learning Libraries をインストールすると、coder.getDeepLearningLayers を使用して、特定の深層学習ライブラリでサポートされているレイヤーのリストを確認できます。以下に例を示します。

coder.getDeepLearningLayers('mkldnn')

レイヤー名説明ARM Compute LibraryIntel MKL-DNN
additionLayer

加算層

はいはい
averagePooling2dLayer

平均プーリング層

はいはい
batchNormalizationLayer

バッチ正規化層

はいはい
classificationLayer

分類出力層の作成

はいはい
clippedReluLayer

クリップされた正規化線形ユニット (ReLU) 層

はいはい
convolution2dLayer

2 次元畳み込み層

はい

はい

  • MKL-DNN v0.14 および AVX-512 を使用する CPU では、畳み込み演算のための生成されたコードは、特定のサイズかつ特定のパディングの入力に対して、不正確な結果を出す可能性があります。

crop2dLayer

2 次元切り取りを入力に適用する層

いいえはい
CrossChannelNormalizationLayer

チャネル単位の局所応答正規化層

はいはい

カスタム出力層

nnet.layer.ClassificationLayer または nnet.layer.RegressionLayer を使用して作成される、カスタム分類出力層または回帰出力層を含むすべての出力層。

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

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

はい

はい

depthConcatenationLayer

深さ連結層

はい

はい

  • MKL-DNN v0.14 を使用するコードを生成するには、層の入力のすべてのチャネル次元が 8 の倍数でなければならないか、またはすべてのチャネル次元が 8 の倍数以外でなければならないかのいずれかです。

dropoutLayer

ドロップアウト層

はいはい
fullyConnectedLayer

全結合層

はいはい
globalAveragePooling2dLayer

空間データのグローバル平均プーリング層

はい

はい

groupedConvolution2dLayer

2 次元グループ畳み込み層

はい

  • numGroups に整数を指定する場合、その値は 2 以下でなければなりません。

はい

imageInputLayer

イメージ入力層

  • コード生成は、関数ハンドルを使用して指定された 'Normalization' をサポートしていません。

はいはい
leakyReluLayer

漏洩正規化線形ユニット (ReLU) 層

はいはい
maxPooling2dLayer

最大プーリング層

はいはい
maxUnpooling2dLayer

最大逆プーリング層

いいえはい
pixelClassificationLayer

セマンティック セグメンテーションのピクセル分類レイヤーの作成

はいはい
regressionLayer

回帰出力層の作成

はいはい
reluLayer

正規化線形ユニット (ReLU) 層

はいはい
softmaxLayer

ソフトマックス層

はい

はい

nnet.keras.layer.FlattenCStyleLayer

C スタイル (行優先) の順序であると仮定して、活性化を 1 次元にフラット化

はい

はい

nnet.keras.layer.GlobalAveragePooling2dLayer

空間データのグローバル平均プーリング層

はい

はい

nnet.keras.layer.SigmoidLayer

シグモイド活性化層

はい

はい

nnet.keras.layer.TanhLayer

双曲線正接活性化層

はい

はい

nnet.keras.layer.ZeroPadding2dLayer

2 次元入力のためのゼロ パディング層

はい

はい

nnet.onnx.layer.ElementwiseAffineLayer

その後に追加が続く、入力の要素単位のスケーリングを実行する層

はいはい

nnet.onnx.layer.FlattenLayer

ONNX™ ネットワークの層のフラット化

はい

はい

tanhLayer

双曲線正接 (tanh) 層

はい

はい

transposedConv2dLayer

転置 2 次元畳み込み層

コード生成は、入力の非対称のトリミングをサポートしていません。たとえば、ベクトル [t b l r]'Cropping' パラメーターに指定して、入力の上下左右をトリミングすることはサポートされていません。

はい

はい

YOLOv2OutputLayer

YOLO v2 オブジェクト検出ネットワークの出力層

はい

はい

YOLOv2ReorgLayer

YOLO v2 オブジェクト検出ネットワークの再編成層

はい

はい

YOLOv2TransformLayer

YOLO v2 オブジェクト検出ネットワークの変換層

はい

はい

MKL-DNN に関する制限事項とソフトマックス層への大きい負の入力値

次のすべての条件に該当する場合、ソフトマックス層用に生成されたコードは正しくない (NaN 値が含まれている) 可能性があります。

  • MKL-DNN を使用してコードを生成する。

  • ネットワークが FCN ネットワークまたはカスタム ネットワーク (ユーザーが作成して学習させるネットワーク) である。

  • ソフトマックス層への入力に大きい負の値がある。ソフトマックス層の前に ReLU 層がない場合、ソフトマックス層への入力は大きな負の値になる可能性があります。

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

クラス

説明

ARM Compute Library

Intel MKL-DNN

yolov2ObjectDetector

  • yolov2ObjectDetectordetect メソッドのみがコード生成でサポートされます。

  • detect メソッドの引数 roi は、コード生成定数 (coder.const()) と 1 行 4 列のベクトルでなければなりません。

  • detect には、ThresholdSelectStrongestMinSize、および MaxSize の名前と値のペアのみがサポートされます。

  • detectlabels 出力が、文字ベクトルの cell 配列として返されます (たとえば {'car','bus'})。

はい

はい

参考

関連するトピック