このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
コード生成でサポートされているネットワークとレイヤー
MATLAB® Coder™ は、系列ネットワーク、有向非循環グラフ (DAG) ネットワーク、再帰型畳み込みニューラル ネットワーク (CNN または ConvNet) のコード生成をサポートします。コード生成でサポートされている層の学習済みの畳み込みニューラル ネットワークのコードを生成できます。サポートされている層を参照してください。
サポートされている事前学習済みネットワーク
次の事前学習済みネットワークは Deep Learning Toolbox™ で利用でき、コード生成をサポートしています。
ネットワーク名 | 説明 | ARM® Compute Library | Intel® MKL-DNN |
---|---|---|---|
AlexNet | AlexNet 畳み込みニューラル ネットワーク。事前学習済みの AlexNet モデルについては、 | あり | あり |
DarkNet | DarkNet-19 および DarkNet-53 畳み込みニューラル ネットワーク。事前学習済みの DarkNet モデルについては、darknet19 (Deep Learning Toolbox) および darknet53 (Deep Learning Toolbox) を参照してください。 | あり | あり |
DenseNet-201 | DenseNet-201 畳み込みニューラル ネットワーク。事前学習済みの DenseNet-201 モデルについては、 | あり | あり |
EfficientNet-b0 | EfficientNet-b0 畳み込みニューラル ネットワーク。事前学習済みの EfficientNet-b0 モデルについては、 | あり | あり |
GoogLeNet | GoogLeNet 畳み込みニューラル ネットワーク。事前学習済みの GoogLeNet モデルについては、 | あり | あり |
Inception-ResNet-v2 | Inception-ResNet-v2 畳み込みニューラル ネットワーク。事前学習済みの Inception-ResNet-v2 モデルについては、 | あり | あり |
Inception-v3 | Inception-v3 畳み込みニューラル ネットワーク。事前学習済みの Inception-v3 モデルについては、inceptionv3 (Deep Learning Toolbox) を参照してください。 | あり | あり |
MobileNet-v2 | MobileNet-v2 畳み込みニューラル ネットワーク。事前学習済みの MobileNet-v2 モデルについては | あり | あり |
NASNet-Large | NASNet-Large 畳み込みニューラル ネットワーク。事前学習済みの NASNet-Large モデルについては、 | あり | あり |
NASNet-Mobile | NASNet-Mobile 畳み込みニューラル ネットワーク。事前学習済みの NASNet-Mobile モデルについては、 | あり | あり |
ResNet | ResNet-18、ResNet-50 および ResNet-101 畳み込みニューラル ネットワーク。事前学習済みの ResNet モデルについては、 | あり | あり |
SegNet | 複数クラスのピクセル単位のセグメンテーション ネットワーク。詳細については、 | なし | あり |
SqueezeNet | 小規模のディープ ニューラル ネットワーク。事前学習済みの SqeezeNet モデルについては、 | あり | あり |
VGG-16 | VGG-16 畳み込みニューラル ネットワーク。事前学習済みの VGG-16 モデルについては、 | あり | あり |
VGG-19 | VGG-19 畳み込みニューラル ネットワーク。事前学習済みの VGG-19 モデルについては、 | あり | あり |
Xception | Xception 畳み込みニューラル ネットワーク。事前学習済みの Xception モデルについては、 | あり | あり |
サポートされている層
表に指定されているターゲット深層学習ライブラリについて、次の層は MATLAB Coder によるコード生成でサポートされています。
サポート パッケージの MATLAB Coder Interface for Deep Learning をインストールすると、ネットワークが特定の深層学習ライブラリのコード生成と互換性があるかどうかを analyzeNetworkForCodegen
を使用して確認できます。次に例を示します。
result = analyzeNetworkForCodegen(mobilenetv2,TargetLibrary = 'mkldnn')
メモ
R2022b 以降では、深層学習ライブラリのコード生成互換性チェックに関数 analyzeNetworkForCodegen
を使用します。coder.getDeepLearningLayers
は推奨されません。
レイヤー名 | 説明 | ARM Compute Library | Intel MKL-DNN | 汎用 C/C++ |
---|---|---|---|---|
additionLayer (Deep Learning Toolbox) | 加算層 | あり | あり | あり |
anchorBoxLayer (Computer Vision Toolbox) | アンカー ボックス層 | あり | あり | あり |
averagePooling2dLayer (Deep Learning Toolbox) | 平均プーリング層
| あり | あり | あり |
batchNormalizationLayer (Deep Learning Toolbox) | バッチ正規化層 | あり | あり | あり |
bilstmLayer (Deep Learning Toolbox) | 双方向 LSTM 層 | あり | あり | あり |
classificationLayer (Deep Learning Toolbox) | 分類出力層の作成 | あり | あり | あり |
clippedReluLayer (Deep Learning Toolbox) | クリップされた正規化線形ユニット (ReLU) 層 | あり | あり | あり |
concatenationLayer (Deep Learning Toolbox) | 連結層 | あり | あり | あり |
convolution2dLayer (Deep Learning Toolbox) | 2 次元畳み込み層
| あり | あり | あり |
crop2dLayer (Deep Learning Toolbox) | 2 次元切り取りを入力に適用する層 | あり | あり | なし |
CrossChannelNormalizationLayer (Deep Learning Toolbox) | チャネル単位の局所応答正規化層 | あり | あり | なし |
カスタム層 | 問題に対して定義するカスタム層。学習可能パラメーターの有無は任意です。 以下を参照してください。
カスタム層の出力は固定サイズの配列でなければなりません。 シーケンス ネットワークにおけるカスタム層は汎用 C/C++ コード生成でのみサポートされます。 コード生成では、カスタム層に 次の場合は、カスタム層に
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 | あり | あり | あり シーケンス ネットワークにおけるカスタム層は汎用 C/C++ コード生成でのみサポートされます。 |
カスタム出力層 |
カスタム分類出力層を定義して損失関数を指定する方法を示す例については、カスタム分類出力層の定義 (Deep Learning Toolbox)を参照してください。 カスタム回帰出力層を定義して損失関数を指定する方法を示す例については、カスタム回帰出力層の定義 (Deep Learning Toolbox)を参照してください。 | あり | あり | あり |
depthConcatenationLayer (Deep Learning Toolbox) | 深さ連結層 | あり | あり | あり |
depthToSpace2dLayer (Image Processing Toolbox) | 2 次元深さから空間への変換層 | あり | あり | あり |
dicePixelClassificationLayer (Computer Vision Toolbox) | Dice ピクセル分類層は、汎用的な Dice 損失を使用して、イメージのピクセルまたはボクセルごとに categorical ラベルを提供します。 | あり | あり | なし |
dropoutLayer (Deep Learning Toolbox) | ドロップアウト層 | あり | あり | あり |
eluLayer (Deep Learning Toolbox) | 指数線形ユニット (ELU) 層 | あり | あり | あり |
featureInputLayer (Deep Learning Toolbox) | 特徴入力層 | あり | あり | あり |
flattenLayer (Deep Learning Toolbox) | フラット化層 | あり | あり | あり |
focalLossLayer (Computer Vision Toolbox) | 焦点損失層は、焦点損失を使用してオブジェクト クラスを予測します。 | あり | あり | あり |
fullyConnectedLayer (Deep Learning Toolbox) | 全結合層 | あり | あり | あり |
globalAveragePooling2dLayer (Deep Learning Toolbox) | 空間データのグローバル平均プーリング層 | あり | あり | あり |
globalMaxPooling2dLayer (Deep Learning Toolbox) | 2 次元グローバル最大プーリング層 | あり | あり | あり |
| 2 次元グループ畳み込み層
| あり
| あり | なし |
| グループ正規化層 | あり | あり | あり |
| ゲート付き回帰型ユニット (GRU) 層 | あり | あり | あり |
imageInputLayer (Deep Learning Toolbox) | イメージ入力層
| あり | あり | あり |
leakyReluLayer (Deep Learning Toolbox) | 漏洩正規化線形ユニット (ReLU) 層 | あり | あり | あり |
lstmLayer (Deep Learning Toolbox) | 長短期記憶 (LSTM) 層 | あり | あり | あり |
lstmProjectedLayer (Deep Learning Toolbox) | LSTM 投影層 | なし | なし | あり |
maxPooling2dLayer (Deep Learning Toolbox) | 最大プーリング層 カーネル ウィンドウで非対角要素に同じ最大値がある場合、 | あり | あり | あり |
maxUnpooling2dLayer (Deep Learning Toolbox) | 最大逆プーリング層 カーネル ウィンドウで非対角要素に同じ最大値がある場合、 | なし | あり | なし |
multiplicationLayer (Deep Learning Toolbox) | 乗算層 | あり | あり | あり |
pixelClassificationLayer (Computer Vision Toolbox) | セマンティック セグメンテーションのピクセル分類レイヤーの作成 | あり | あり | なし |
rcnnBoxRegressionLayer (Computer Vision Toolbox) | Fast R-CNN および Faster R-CNN 用のボックス回帰層 | あり | あり | あり |
rpnClassificationLayer (Computer Vision Toolbox) | 領域提案ネットワーク (RPN) 用の分類層 | あり | あり | なし |
regressionLayer (Deep Learning Toolbox) | 回帰出力層の作成 | あり | あり | あり |
reluLayer (Deep Learning Toolbox) | 正規化線形ユニット (ReLU) 層 | あり | あり | あり |
resize2dLayer (Image Processing Toolbox) | 2 次元サイズ変更層 | あり | あり | あり |
scalingLayer (Reinforcement Learning Toolbox) | アクター ネットワークまたはクリティック ネットワーク用のスケーリング層 | あり | あり | あり |
sigmoidLayer (Deep Learning Toolbox) | シグモイド層 | あり | あり | あり |
sequenceFoldingLayer (Deep Learning Toolbox) | シーケンスの折りたたみ層 | あり | あり | なし |
sequenceInputLayer (Deep Learning Toolbox) | シーケンス入力層
| あり | あり | あり |
sequenceUnfoldingLayer (Deep Learning Toolbox) | シーケンスの展開層 | あり | あり | なし |
softmaxLayer (Deep Learning Toolbox) | ソフトマックス層 | あり | あり | あり |
softplusLayer (Reinforcement Learning Toolbox) | アクター ネットワークまたはクリティック ネットワーク用のソフトプラス層 | あり | あり | あり |
spaceToDepthLayer (Image Processing Toolbox) | 空間から深さへの変換層 | あり | あり | なし |
ssdMergeLayer (Computer Vision Toolbox) | オブジェクト検出のための SSD マージ層 | あり | あり | あり |
swishLayer (Deep Learning Toolbox) | Swish 層 | あり | あり | あり |
| 上限と下限の間の入力を切り取ります。 | あり | あり | あり |
| C スタイル (行優先) の順序であると仮定して、活性化を 1 次元にフラット化 | あり | あり | あり |
nnet.keras.layer.GlobalAveragePooling2dLayer | 空間データのグローバル平均プーリング層 | あり | あり | あり |
| パラメトリックな正規化線形ユニット | あり | あり | あり |
| シグモイド活性化層 | あり | あり | あり |
| 双曲線正接活性化層 | あり | あり | あり |
| 入力層の C スタイル (または行優先) のストレージ順序であると仮定して、入力イメージのシーケンスをベクトルのシーケンスにフラット化 | あり | あり | あり |
| 2 次元入力のためのゼロ パディング層 | あり | あり | あり |
| 上限と下限の間の入力の切り取り | あり | あり | あり |
nnet.onnx.layer.ElementwiseAffineLayer | その後に追加が続く、入力の要素単位のスケーリングを実行する層 | あり | あり | あり |
|
| あり | あり | あり |
| ONNX™ ネットワークの層のフラット化 | あり | あり | あり |
| 空間データのグローバル平均プーリング層 | あり | あり | あり |
| ONNX 恒等作用素を実装する層 | あり | あり | あり |
| パラメトリックな正規化線形ユニット | あり | あり | あり |
| シグモイド活性化層 | あり | あり | あり |
| 双曲線正接活性化層 | あり | あり | あり |
| 固定バッチ サイズの検証 | あり | あり | あり |
| 双曲線正接 (tanh) 層 | あり | あり | あり |
| 転置 2 次元畳み込み層 コード生成は、入力の非対称のトリミングをサポートしていません。たとえば、ベクトル | あり | あり | なし |
| 単語埋め込み層による単語インデックスのベクトルへのマッピング | あり | あり | なし |
| YOLO v2 オブジェクト検出ネットワークの出力層 | あり | あり | なし |
| YOLO v2 オブジェクト検出ネットワークの再編成層 | あり | あり | なし |
| YOLO v2 オブジェクト検出ネットワークの変換層 | あり | あり | なし |
サポートされているクラス
クラス | 説明 | ARM Compute Library | Intel MKL-DNN | 汎用 C/C++ |
---|---|---|---|---|
DAGNetwork (Deep Learning Toolbox) | 深層学習用の有向非循環グラフ (DAG) ネットワーク
| あり | あり | あり |
dlnetwork (Deep Learning Toolbox) | カスタム学習ループ用の深層学習ネットワーク
| あり | あり | あり |
SeriesNetwork (Deep Learning Toolbox) | 深層学習用の系列ネットワーク
| あり | あり | あり |
| YOLO v2 オブジェクト検出器を使用したオブジェクトの検出
| あり | あり | なし |
| YOLO v3 オブジェクト検出器を使用したオブジェクトの検出
| あり | あり | あり |
yolov4ObjectDetector (Computer Vision Toolbox) | YOLO v4 オブジェクト検出器を使用したオブジェクトの検出
| あり | あり | あり |
ssdObjectDetector (Computer Vision Toolbox) | SSD ベースの検出器を使用してオブジェクトを検出するためのオブジェクト。
| あり | あり | あり |
| LIDAR 点群でオブジェクトを検出する PointPillars ネットワーク
| あり | あり | なし |
int8
コードの生成
Deep Learning Toolbox Model Quantization Library サポート パッケージとともに Deep Learning Toolbox を使用して、畳み込み層の重み、バイアス、およびアクティベーションを 8 ビットにスケーリングされた整数データ型に量子化して、深層ニューラル ネットワークのメモリ フットプリントを削減できます。次に、MATLAB Coder を使用してネットワークの最適化されたコードを生成できます。深層学習ネットワークの int8 コードの生成を参照してください。
参考
関連するトピック
- 事前学習済みの深層ニューラル ネットワーク (Deep Learning Toolbox)
- 畳み込みニューラル ネットワークについて (Deep Learning Toolbox)
- MATLAB Coder を使用した深層学習コード生成のワークフロー