Main Content

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

サポートされるネットワーク、層、クラス

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

GPU Coder™ は、系列または有向非循環グラフ (DAG) 畳み込みニューラル ネットワーク (CNN または ConvNets) のコード生成をサポートしています。コード生成でサポートされている層を含む学習済みの畳み込みニューラル ネットワークについて、コードを生成できます。サポートされている層を参照してください。Deep Learning Toolbox™ を使用するか、以下の表に示されているいずれかの事前学習済みのネットワークを使用して、1 つの CPU、1 つの GPU、または複数の GPU 上で畳み込みニューラル ネットワークに学習させ、CUDA® コードを生成することができます。

ネットワークの名前説明cuDNNTensorRTARM® Compute Library for Mali GPU

AlexNet

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

構文 alexnet('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

Caffe ネットワーク

Caffe からの畳み込みニューラル ネットワーク モデル。Caffe からの事前学習済みのネットワークのインポートについては、importCaffeNetwork (Deep Learning Toolbox) を参照してください。

あり

あり

あり

DarkNet-19

DarkNet-19 畳み込みニューラル ネットワーク。詳細については、darknet19 (Deep Learning Toolbox) を参照してください。

構文 darknet19('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

DarkNet-53

DarkNet-53 畳み込みニューラル ネットワーク。詳細については、darknet53 (Deep Learning Toolbox) を参照してください。

構文 darknet53('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

DeepLab v3+

DeepLab v3+ 畳み込みニューラル ネットワーク。詳細については、deeplabv3plusLayers (Computer Vision Toolbox) を参照してください。

あり

あり

なし

DenseNet-201

DenseNet-201 畳み込みニューラル ネットワーク。事前学習済みの DenseNet-201 モデルについては、densenet201 (Deep Learning Toolbox) を参照してください。

構文 densenet201('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

EfficientNet-b0

EfficientNet-b0 畳み込みニューラル ネットワーク。事前学習済みの EfficientNet-b0 モデルについては、efficientnetb0 (Deep Learning Toolbox) を参照してください。

構文 efficientnetb0('Weights','none') はコード生成でサポートされていません。

ありありあり

GoogLeNet

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

構文 googlenet('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

Inception-ResNet-v2

Inception-ResNet-v2 畳み込みニューラル ネットワーク。事前学習済みの Inception-ResNet-v2 モデルについては、inceptionresnetv2 (Deep Learning Toolbox) を参照してください。

あり

あり

なし

Inception-v3

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

構文 inceptionv3('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

Mobilenet-v2

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

構文 mobilenetv2('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

NASNet-Large

NASNet-Large 畳み込みニューラル ネットワーク。事前学習済みの NASNet-Large モデルについては、nasnetlarge (Deep Learning Toolbox) を参照してください。

あり

あり

なし

NASNet-Mobile

NASNet-Mobile 畳み込みニューラル ネットワーク。事前学習済みの NASNet-Mobile モデルについては、nasnetmobile (Deep Learning Toolbox) を参照してください。

あり

あり

なし

ResNet

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

構文 resnetXX('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

SegNet

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

あり

あり

なし

SqueezeNet

小さい深層ニューラル ネットワーク。事前学習済みの SqueezeNet モデルについては、squeezenet (Deep Learning Toolbox) を参照してください。

構文 squeezenet('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

VGG-16

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

構文 vgg16('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

VGG-19

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

構文 vgg19('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

Xception

Xception 畳み込みニューラル ネットワーク。事前学習済みの Xception モデルについては、xception (Deep Learning Toolbox) を参照してください。

構文 xception('Weights','none') はコード生成でサポートされていません。

あり

あり

あり

YOLO v2

version 2 の畳み込みニューラル ネットワーク ベースのオブジェクト検出器を 1 回のみ確認します。詳細については、yolov2Layers (Computer Vision Toolbox) を参照してください。

あり

あり

あり

サポートされている層

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

入力層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

imageInputLayer (Deep Learning Toolbox)

イメージ入力層は、ネットワークに 2 次元イメージを入力し、データ正規化を適用します。

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

あり

あり

あり

sequenceInputLayer (Deep Learning Toolbox)

シーケンス入力層は、ネットワークにシーケンス データを入力します。

cuDNN ライブラリはベクトルおよび 2 次元イメージ シーケンスをサポートします。TensorRT ライブラリはベクトル入力シーケンスのみをサポートします。

ベクトル シーケンス入力の場合、特徴の数はコード生成時に定数でなければなりません。

イメージ シーケンス入力の場合、高さ、幅、およびチャネル数は、コード生成時に定数でなければなりません。

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

あり

あり

なし

featureInputLayer (Deep Learning Toolbox)

特徴入力層は、特徴データをネットワークに入力し、データ正規化を適用します。

あり

あり

あり

畳み込み層と全結合層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

convolution2dLayer (Deep Learning Toolbox)

2 次元畳み込み層は、入力にスライディング畳み込みフィルターを適用します。

あり

あり

あり

fullyConnectedLayer (Deep Learning Toolbox)

全結合層は、入力に重み行列を乗算し、バイアス ベクトルを加算します。

あり

あり

なし

groupedConvolution2dLayer (Deep Learning Toolbox)

グループ化された 2 次元畳み込み層は、入力チャネルをグループに分けて、スライディング畳み込みフィルターを適用します。チャネル方向に分離可能な (深さ方向に分離可能とも呼ばれる) 畳み込みには、グループ化された畳み込み層を使用します。

ARM Mali GPU のコード生成は、'channel-wise' として設定された NumGroups プロパティまたは 2 を超える値をもつ 2 次元のグループ化された畳み込み層でサポートされません。

あり

あり

あり

transposedConv2dLayer (Deep Learning Toolbox)

2 次元転置畳み込み層では特徴マップがアップサンプリングされます。

あり

あり

あり

シーケンス層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

sequenceInputLayer (Deep Learning Toolbox)

シーケンス入力層は、ネットワークにシーケンス データを入力します。

cuDNN ライブラリはベクトルおよび 2 次元イメージ シーケンスをサポートします。TensorRT ライブラリはベクトル入力シーケンスのみをサポートします。

ベクトル シーケンス入力の場合、特徴の数はコード生成時に定数でなければなりません。

イメージ シーケンス入力の場合、高さ、幅、およびチャネル数は、コード生成時に定数でなければなりません。

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

あり

あり

なし

bilstmLayer (Deep Learning Toolbox)

双方向 LSTM (BiLSTM) 層は、時系列データまたはシーケンス データのタイム ステップ間の双方向の長期的な依存関係を学習します。これらの依存関係は、各タイム ステップで時系列全体からネットワークに学習させる場合に役立ちます。

コード生成の場合、StateActivationFunction プロパティを 'tanh' に設定しなければなりません。

コード生成の場合、GateActivationFunction プロパティを 'sigmoid' に設定しなければなりません。

あり

あり

なし

flattenLayer (Deep Learning Toolbox)

フラット化層は、入力の空間次元を折りたたんでチャネルの次元にします。

あり

なし

なし

gruLayer (Deep Learning Toolbox)

GRU 層は、時系列データおよびシーケンス データのタイム ステップ間の依存関係を学習します。

コード生成では、'after-multiplication''recurrent-bias-after-multiplication' のリセット ゲート モードのみがサポートされます。

あり

あり

なし

lstmLayer (Deep Learning Toolbox)

LSTM 層は、時系列データおよびシーケンス データのタイム ステップ間の長期的な依存関係を学習します。

コード生成の場合、StateActivationFunction プロパティを 'tanh' に設定しなければなりません。

コード生成の場合、GateActivationFunction プロパティを 'sigmoid' に設定しなければなりません。

あり

あり

なし

sequenceFoldingLayer (Deep Learning Toolbox)

シーケンス折りたたみ層は、イメージ シーケンスのバッチをイメージのバッチに変換します。シーケンス折りたたみ層を使用して、畳み込み演算をイメージ シーケンスのタイム ステップごとに個別に実行します。

あり

なし

なし

sequenceUnfoldingLayer (Deep Learning Toolbox)

シーケンス展開層は、シーケンスの折りたたみ後に入力データのシーケンス構造を復元します。

あり

なし

なし

wordEmbeddingLayer (Text Analytics Toolbox)

単語埋め込み層は、単語インデックスをベクトルにマッピングします。

あり

あり

なし

活性化層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

clippedReluLayer (Deep Learning Toolbox)

クリップされた ReLU 層は、しきい値処理を実行し、入力値がゼロよりも小さい場合はゼロに設定して、値が "クリップ上限" を超える場合はそのクリップ上限に設定します。

あり

あり

あり

eluLayer (Deep Learning Toolbox)

ELU 活性化層は、正の入力に対して恒等演算を実行し、負の入力に対して非線形となる指数演算を実行します。

あり

あり

なし

leakyReluLayer (Deep Learning Toolbox)

leaky ReLU 層は、しきい値処理を実行し、入力値がゼロよりも小さい場合は固定のスカラーによって乗算します。

あり

あり

あり

reluLayer (Deep Learning Toolbox)

ReLU 層は、入力の各要素に対してしきい値処理を実行し、値がゼロよりも小さい場合はゼロに設定します。

あり

あり

あり

gelu (Deep Learning Toolbox)

GELU 層は、ガウス確率分布に従って入力を重み付けします。

あり

あり

あり

softplusLayer (Reinforcement Learning Toolbox)

SoftplusLayer は、出力が常に正であるようにするソフトプラス活性化 Y = log(1 + eX) を実装する深層ニューラル ネットワーク層です。

あり

あり

なし

swishLayer (Deep Learning Toolbox)

Swish 活性化層は、層の入力に対して Swish 関数を適用します。

あり

あり

なし

tanhLayer (Deep Learning Toolbox)

双曲線正接 (tanh) 活性化層は、層の入力に対して tanh 関数を適用します。

あり

あり

あり

正規化層、ドロップアウト層、およびトリミング層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

batchNormalizationLayer (Deep Learning Toolbox)

バッチ正規化層は、ミニバッチ全体で各入力チャネルを正規化します。

あり

あり

あり

crossChannelNormalizationLayer (Deep Learning Toolbox)

チャネル単位の局所応答 (クロス チャネル) 正規化層は、チャネル単位の正規化を行います。

あり

あり

あり

groupNormalizationLayer (Deep Learning Toolbox)

グループ正規化層は、グループ化されたチャネル サブセット全体におけるデータのミニバッチの正規化を、各観測値について個別に行います。

あり

あり

なし

layerNormalizationLayer (Deep Learning Toolbox)

レイヤー正規化層は、すべてのチャネル全体におけるデータのミニバッチの正規化を、各観測値について個別に行います。

あり

あり

なし

crop2dLayer (Deep Learning Toolbox)

2 次元切り取り層は、入力に 2 次元のトリミングを適用します。

あり

あり

あり

dropoutLayer (Deep Learning Toolbox)

ドロップアウト層は、与えられた確率でランダムに、入力要素をゼロに設定します。

あり

あり

あり

scalingLayer (Reinforcement Learning Toolbox)

アクターまたはクリティック ネットワークのスケーリング層。

コード生成では、'Scale' プロパティと 'Bias' プロパティの値の次元が同じでなければなりません。

あり

あり

あり

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

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

averagePooling2dLayer (Deep Learning Toolbox)

平均プーリング層は、入力を四角形のプーリング領域に分割し、各領域の平均値を計算することによって、ダウンサンプリングを実行します。

パディング サイズが対称である場合、PaddingValue プロパティの 'mean' の設定を使用することで、NVIDIA® の cuDNN ライブラリおよび TensorRT ライブラリを使用してコードを生成できます。

MATLAB Function ブロックを使用して深層学習機能を実装する Simulink® モデルでは、非ゼロのパディング値をもつ平均プーリング層がネットワークに含まれている場合、シミュレーションでエラーが発生します。このような場合、MATLAB Function の代わりに Deep Neural Networks ライブラリのブロックを使用して、深層学習機能を実装します。

あり

あり

あり

globalAveragePooling2dLayer (Deep Learning Toolbox)

グローバル平均プーリング層は、入力の高さおよび幅の次元の平均を計算することによって、ダウンサンプリングを実行します。

あり

あり

あり

globalMaxPooling2dLayer (Deep Learning Toolbox)

グローバル最大プーリング層は、入力の高さおよび幅の次元の最大値を計算することによって、ダウンサンプリングを実行します。

あり

あり

あり

maxPooling2dLayer (Deep Learning Toolbox)

最大プーリング層は、入力を四角形のプーリング領域に分割し、各領域の最大値を計算することによって、ダウンサンプリングを実行します。

等しい最大値がカーネル ウィンドウの非対角成分に沿って存在する場合、maxPooling2dLayer の実装の違いにより、MATLAB® と生成コードの間でわずかな数値の不一致が生じる可能性があります。この問題により、プールされた各領域の最大値のインデックスにも不一致が生じます。詳細については、maxPooling2dLayer (Deep Learning Toolbox) を参照してください。

あり

あり

あり

maxUnpooling2dLayer (Deep Learning Toolbox)

最大逆プーリング層は、最大プーリング層の出力を逆プーリングします。

等しい最大値がカーネル ウィンドウの非対角成分に沿って存在する場合、maxPooling2dLayer の実装の違いにより、MATLAB と生成コードの間でわずかな数値の不一致が生じる可能性があります。この問題により、プールされた各領域の最大値のインデックスにも不一致が生じます。詳細については、maxUnpooling2dLayer (Deep Learning Toolbox) を参照してください。

あり

あり

なし

結合層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

additionLayer (Deep Learning Toolbox)

加算層は、複数のニューラル ネットワーク層からの入力を要素単位で加算します。

あり

あり

あり

concatenationLayer (Deep Learning Toolbox)

連結層は入力を取り、指定された次元に沿って入力を連結します。

あり

あり

なし

depthConcatenationLayer (Deep Learning Toolbox)

深さ連結層は、高さと幅が同じ入力を取り、3 番目の次元 (チャネルの次元) に沿ってこれらを連結します。

あり

あり

あり

オブジェクト検出層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

anchorBoxLayer (Computer Vision Toolbox)

アンカー ボックス層は、オブジェクト検出ネットワークで使用される特徴マップのアンカー ボックスを保存します。

あり

あり

あり

depthToSpace2dLayer (Image Processing Toolbox)

深さから空間への 2 次元の変換層は、深さの次元のデータを 2 次元の空間データのブロックに置換します。

あり

あり

あり

spaceToDepthLayer (Image Processing Toolbox)

空間から深さへの変換層は、入力の空間ブロックを深さの次元に置換します。特徴データを破棄することなく、異なるサイズの特徴マップを組み合わせる必要がある場合は、この層を使用します。

あり

あり

あり

ssdMergeLayer (Computer Vision Toolbox)

SSD マージ層は、後続の回帰や分類の損失計算に使用する特徴マップの出力をマージします。

あり

あり

なし

yolov2ReorgLayer (Computer Vision Toolbox)

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

あり

あり

あり

yolov2TransformLayer (Computer Vision Toolbox)

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

あり

あり

あり

rcnnBoxRegressionLayer (Computer Vision Toolbox)

ボックス回帰層は、スムーズ L1 損失関数を使用して、境界ボックスの位置を調整します。Fast R-CNN オブジェクトまたは Faster R-CNN オブジェクト検出ネットワークを作成するには、この層を使用します。

あり

あり

あり

focalLossLayer (Computer Vision Toolbox)

焦点損失層は、焦点損失を使用してオブジェクトのクラスを予測します。

あり

あり

あり

rpnClassificationLayer (Computer Vision Toolbox)

領域提案ネットワーク (RPN) 分類層は、クロス エントロピー損失関数を使用して、イメージ領域を "オブジェクト" または "背景" として分類します。Faster R-CNN オブジェクト検出ネットワークを作成するには、この層を使用します。

あり

あり

あり

yolov2OutputLayer (Computer Vision Toolbox)

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

あり

あり

あり

出力層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

classificationLayer (Deep Learning Toolbox)

分類層は、互いに排他的なクラスを含むマルチクラス分類問題の交差エントロピー損失を計算します。

あり

あり

あり

dicePixelClassificationLayer (Computer Vision Toolbox)

Dice ピクセル分類層は、一般化 Dice 損失を使用して、各イメージ ピクセルまたはボクセルのカテゴリカル ラベルを提供します。

あり

あり

あり

focalLossLayer (Computer Vision Toolbox)

焦点損失層は、焦点損失を使用してオブジェクトのクラスを予測します。

あり

あり

あり

pixelClassificationLayer (Computer Vision Toolbox)

ピクセル分類層は、各イメージ ピクセルまたはボクセルのカテゴリカル ラベルを提供します。

あり

あり

あり

rcnnBoxRegressionLayer (Computer Vision Toolbox)

ボックス回帰層は、スムーズ L1 損失関数を使用して、境界ボックスの位置を調整します。Fast R-CNN オブジェクトまたは Faster R-CNN オブジェクト検出ネットワークを作成するには、この層を使用します。

あり

あり

あり

regressionLayer (Deep Learning Toolbox)

回帰層は、回帰問題の半平均二乗誤差損失を計算します。

あり

あり

あり

rpnClassificationLayer (Computer Vision Toolbox)

領域提案ネットワーク (RPN) 分類層は、クロス エントロピー損失関数を使用して、イメージ領域を "オブジェクト" または "背景" として分類します。Faster R-CNN オブジェクト検出ネットワークを作成するには、この層を使用します。

あり

あり

あり

sigmoidLayer (Deep Learning Toolbox)

シグモイド層によって、シグモイド関数が入力に適用されます。

あり

あり

あり

softmaxLayer (Deep Learning Toolbox)

ソフトマックス層は、入力にソフトマックス関数を適用します。

あり

あり

あり

Output Layer (Deep Learning Toolbox)

nnet.layer.ClassificationLayer または nnet.layer.RegressionLayer を使用して作成されたカスタム分類層または回帰出力層などの出力層。

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

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

あり

あり

あり

カスタム Keras 層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

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

入力を上限と下限の間でクリップします。

あり

あり

なし

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

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

あり

あり

あり

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)

入力層が C スタイル (行優先) のストレージ順序であると仮定して、入力イメージのシーケンスをベクトルのシーケンスにフラット化します。

あり

あり

なし

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

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

あり

あり

あり

カスタム ONNX 層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

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

入力を上限と下限の間でクリップします。

あり

あり

なし

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

加算の前に入力の要素単位のスケーリングを実行する層。

あり

あり

あり

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

ONNX と同じ方法で MATLAB の 2 次元イメージ バッチをフラットにし、CB 形式の 2 次元出力配列を生成します。

あり

あり

なし

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

入力テンソルの空間次元をチャネル次元へとフラットにします。

あり

あり

あり

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

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

あり

あり

あり

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

ONNX の単位行列演算子を実装する層。

あり

あり

あり

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)

固定バッチ サイズを検証します。

あり

あり

あり

カスタム層

層の名前説明cuDNNTensorRTARM Compute Library for Mali GPU

Custom layers

問題に関して定義される、学習可能パラメーターを伴う場合と伴わない場合があるカスタム層。

カスタム深層学習層の定義方法については、カスタム深層学習層の定義 (Deep Learning Toolbox)コード生成用のカスタム深層学習層の定義 (Deep Learning Toolbox)を参照してください。

カスタム層を使用してネットワーク用のコードを生成する方法の例については、YOLO v3 深層学習ネットワークを使用したオブジェクト検出用のコード生成を参照してください。

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

coder.gpuConfigMallocMode として 'unified' を使用すると、追加のメモリ コピーが必要となり、パフォーマンスの低下につながります。カスタム層では、'discrete' モードを使用することをお勧めします。GPU メモリ割り当ての詳細については、離散および管理モードを参照してください。

cuDNN ターゲットは、カスタム層の行優先コード生成と列優先コード生成の両方をサポートします。TensorRT ターゲットは、列優先コード生成のみをサポートします。

コード生成では、カスタム層に %#codegen プラグマが含まれていなければなりません。

カスタム層と LSTM または GRU 層を含むシーケンス ネットワークのコード生成はサポートされていません。

次の場合は、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

あり

あり

なし

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

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

名前説明cuDNNTensorRTARM Compute Library for Mali GPU
DAGNetwork (Deep Learning Toolbox)

深層学習用の有向非循環グラフ (DAG) ネットワーク

  • activations メソッド、predict メソッド、classify メソッドのみがサポートされます。

あり

あり

あり

dlnetwork (Deep Learning Toolbox)

カスタム学習ループ向けの深層学習ネットワーク

  • コード生成では、InputNames プロパティと OutputNames プロパティのみがサポートされます。

  • dlnetwork オブジェクトの Initialized プロパティを true に設定しなければなりません。

  • ベクトル シーケンスおよびイメージ シーケンスの入力をもつ dlnetwork のコードを生成できます。コード生成のサポートには次が含まれます。

    • データ形式が 'CT' または 'CBT' であるベクトル シーケンスを含む dlarray

    • データ形式が 'SSCT' または 'SSCBT' であるイメージ シーケンスを含む dlarray

    • 異種混合の入力層を使用する多入力の dlnetwork。RNN ネットワークでは、複数入力をサポートしていません。

    • 可変サイズの時間 (T) 次元の dlarray 入力。このような dlarray オブジェクトを使用して、可変シーケンス長の時系列データを表します。

  • コード生成は、オブジェクト関数 predict のみをサポートします。predict メソッドへの dlarray 入力は、single データ型でなければなりません。

  • コード生成は、cuDNN、ARM Cortex-A、および TensorRT をターゲットとする dlnetwork をサポートします。コード生成は、ARM Mali ターゲットの dlnetwork をサポートしていません。

  • 精度が INT8 である TensorRT をターゲットとする場合、ネットワークの最後の層は softmaxLayer 層でなければなりません。

  • コード生成は MIMO の dlnetworks をサポートします。

  • コード生成用の dlnetwork オブジェクトを作成するには、コード生成用の事前学習済みのネットワークの読み込みを参照してください。

あり

あり

なし

pointPillarsObjectDetector (Lidar Toolbox)

LIDAR 点群内のオブジェクトを検出するための PointPillars ネットワーク

  • pointPillarsObjectDetectordetect (Lidar Toolbox) メソッドのみがコード生成でサポートされます。

  • detect メソッドの ThresholdSelectStrongest、および MiniBatchSize の名前と値のペアのみがサポートされます。

あり

あり

なし

SeriesNetwork (Deep Learning Toolbox)

深層学習用の系列ネットワーク

  • オブジェクト関数 activationsclassifypredictpredictAndUpdateStateclassifyAndUpdateState、および resetState のみがサポートされます。

あり

あり

あり

ssdObjectDetector (Computer Vision Toolbox)

SSD ベースの検出器を使用したオブジェクトの検出。

  • ssdObjectDetectordetect (Computer Vision Toolbox) メソッドのみがコード生成でサポートされます。

  • detect メソッドの roi 引数は codegen の定数 (coder.const()) および 1 行 4 列のベクトルでなければなりません。

  • ThresholdSelectStrongestMinSizeMaxSize および MiniBatchSize の名前と値のペアのみがサポートされます。すべての名前と値のペアはコンパイル時の定数でなければなりません。

  • 入力イメージのチャネルとバッチ サイズは固定サイズでなければなりません。

  • 出力 labels は categorical 配列として返されます。

  • 生成コードでは、入力がネットワークの入力層のサイズに再スケーリングされます。ただし、detect メソッドが返す境界ボックスは、元の入力サイズに従います。

  • この境界ボックスは、シミュレーション結果と数値的に一致しない場合があります。

あり

あり

なし

yolov2ObjectDetector (Computer Vision Toolbox)

YOLO v2 オブジェクト検出器を使用したオブジェクトの検出

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

  • detect メソッドの roi 引数は codegen の定数 (coder.const()) および 1 行 4 列のベクトルでなければなりません。

  • ThresholdSelectStrongestMinSizeMaxSize および MiniBatchSize の名前と値のペアのみがサポートされます。

  • 入力イメージの高さ、幅、チャネル、バッチ サイズは固定サイズでなければなりません。

  • 検出メソッドに渡す最小バッチ サイズの値は固定サイズでなければなりません。

あり

あり

あり

yolov3ObjectDetector (Computer Vision Toolbox)

YOLO v3 を使用したオブジェクトの検出

  • yolov3ObjectDetectordetect (Computer Vision Toolbox) メソッドのみがコード生成でサポートされます。

  • detect メソッドの roi 引数は codegen の定数 (coder.const()) および 1 行 4 列のベクトルでなければなりません。

  • ThresholdSelectStrongestMinSizeMaxSize および MiniBatchSize の名前と値のペアのみがサポートされます。

  • 入力イメージの高さ、幅、チャネル、バッチ サイズは固定サイズでなければなりません。

  • 検出メソッドに渡す最小バッチ サイズの値は固定サイズでなければなりません。

あり

あり

なし

yolov4ObjectDetector (Computer Vision Toolbox)

YOLO v4 オブジェクト検出器を使用したオブジェクトの検出

  • yolov3ObjectDetectordetect (Computer Vision Toolbox) メソッドのみがコード生成でサポートされます。

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

  • detectThresholdSelectStrongestMinSizeMaxSize、および MiniBatchSize の名前と値のペアのみがサポートされます。

あり

あり

なし

yoloxObjectDetector (Computer Vision Toolbox)

YOLOX オブジェクト検出器を使用したオブジェクトの検出

  • GPU コード生成用に yoloxObjectDetector オブジェクトを準備するには、vision.loadYOLOXObjectDetector (Computer Vision Toolbox) を使用します。

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

  • detect メソッドの AutoResize 引数はコード生成の定数 (coder.const()) でなければなりません。

  • detectThresholdSelectStrongestMinSizeMaxSizeMiniBatchSize、および AutoResize の名前と値のペアのみがサポートされています。

あり

あり

なし

使用上の注意および制限

コード ジェネレーターでは、ロケール設定によって決まる 8 ビット ASCII コードセットで文字が表されます。したがって、クラス名、層の名前、層の説明、またはネットワーク名に非 ASCII 文字を使用すると、エラーが発生する可能性があります。詳細については、コード生成での文字のエンコードを参照してください。

参考

関数

オブジェクト

関連するトピック