このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
サポートされるネットワーク、層、クラス
サポートされている事前学習済みのネットワーク
GPU Coder™ は、系列または有向非循環グラフ (DAG) 畳み込みニューラル ネットワーク (CNN または ConvNets) のコード生成をサポートしています。コード生成でサポートされている層を含む学習済みの畳み込みニューラル ネットワークについて、コードを生成できます。サポートされている層を参照してください。Deep Learning Toolbox™ を使用するか、以下の表に示されているいずれかの事前学習済みのネットワークを使用して、1 つの CPU、1 つの GPU、または複数の GPU 上で畳み込みニューラル ネットワークに学習させ、CUDA® コードを生成することができます。
ネットワークの名前 | 説明 | cuDNN | TensorRT | ARM® Compute Library for Mali GPU |
---|---|---|---|---|
AlexNet | AlexNet 畳み込みニューラル ネットワーク。事前学習済みの AlexNet モデルについては、 構文 | あり | あり | あり |
Caffe ネットワーク | Caffe からの畳み込みニューラル ネットワーク モデル。Caffe からの事前学習済みのネットワークのインポートについては、 | あり | あり | あり |
DarkNet-19 | DarkNet-19 畳み込みニューラル ネットワーク。詳細については、 構文 | あり | あり | あり |
DarkNet-53 | DarkNet-53 畳み込みニューラル ネットワーク。詳細については、 構文 | あり | あり | あり |
DeepLab v3+ | DeepLab v3+ 畳み込みニューラル ネットワーク。詳細については、 | あり | あり | なし |
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 モデルについては、 構文 | あり | あり | あり |
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 | 小さい深層ニューラル ネットワーク。事前学習済みの SqueezeNet モデルについては、 構文 | あり | あり | あり |
VGG-16 | VGG-16 畳み込みニューラル ネットワーク。事前学習済みの VGG-16 モデルについては、 構文 | あり | あり | あり |
VGG-19 | VGG-19 畳み込みニューラル ネットワーク。事前学習済みの VGG-19 モデルについては、 構文 | あり | あり | あり |
Xception | Xception 畳み込みニューラル ネットワーク。事前学習済みの Xception モデルについては、 構文 | あり | あり | あり |
YOLO v2 | version 2 の畳み込みニューラル ネットワーク ベースのオブジェクト検出器を 1 回のみ確認します。詳細については、 | あり | あり | あり |
サポートされている層
以下の層は、表内で指定されたターゲット深層学習ライブラリについて、GPU Coder によるコード生成でサポートされています。
入力層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| イメージ入力層は、ネットワークに 2 次元イメージを入力し、データ正規化を適用します。 コード生成では、関数ハンドルを使用して指定される | あり | あり | あり |
| シーケンス入力層は、ネットワークにシーケンス データを入力します。 cuDNN ライブラリはベクトルおよび 2 次元イメージ シーケンスをサポートします。TensorRT ライブラリはベクトル入力シーケンスのみをサポートします。 ベクトル シーケンス入力の場合、特徴の数はコード生成時に定数でなければなりません。 イメージ シーケンス入力の場合、高さ、幅、およびチャネル数は、コード生成時に定数でなければなりません。 コード生成では、関数ハンドルを使用して指定される | あり | あり | なし |
| 特徴入力層は、特徴データをネットワークに入力し、データ正規化を適用します。 | あり | あり | あり |
畳み込み層と全結合層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| 2 次元畳み込み層は、入力にスライディング畳み込みフィルターを適用します。 | あり | あり | あり |
| 全結合層は、入力に重み行列を乗算し、バイアス ベクトルを加算します。 | あり | あり | なし |
| グループ化された 2 次元畳み込み層は、入力チャネルをグループに分けて、スライディング畳み込みフィルターを適用します。チャネル方向に分離可能な (深さ方向に分離可能とも呼ばれる) 畳み込みには、グループ化された畳み込み層を使用します。 ARM Mali GPU のコード生成は、 | あり | あり | あり |
| 2 次元転置畳み込み層では特徴マップがアップサンプリングされます。 | あり | あり | あり |
シーケンス層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| 双方向 LSTM (BiLSTM) 層は、時系列データまたはシーケンス データのタイム ステップ間の双方向の長期的な依存関係を学習します。これらの依存関係は、各タイム ステップで時系列全体からネットワークに学習させる場合に役立ちます。 コード生成の場合、 コード生成の場合、 | あり | あり | なし |
| フラット化層は、入力の空間次元を折りたたんでチャネルの次元にします。 | あり | なし | なし |
| GRU 層は、時系列データおよびシーケンス データのタイム ステップ間の依存関係を学習します。 コード生成では、 | あり | あり | なし |
| LSTM 層は、時系列データおよびシーケンス データのタイム ステップ間の長期的な依存関係を学習します。 コード生成の場合、 コード生成の場合、 | あり | あり | なし |
| シーケンス折りたたみ層は、イメージ シーケンスのバッチをイメージのバッチに変換します。シーケンス折りたたみ層を使用して、畳み込み演算をイメージ シーケンスのタイム ステップごとに個別に実行します。 | あり | なし | なし |
| シーケンス入力層は、ネットワークにシーケンス データを入力します。 cuDNN ライブラリはベクトルおよび 2 次元イメージ シーケンスをサポートします。TensorRT ライブラリはベクトル入力シーケンスのみをサポートします。 ベクトル シーケンス入力の場合、特徴の数はコード生成時に定数でなければなりません。 イメージ シーケンス入力の場合、高さ、幅、およびチャネル数は、コード生成時に定数でなければなりません。 コード生成では、関数ハンドルを使用して指定される | あり | あり | なし |
| シーケンス展開層は、シーケンスの折りたたみ後に入力データのシーケンス構造を復元します。 | あり | なし | なし |
| 単語埋め込み層は、単語インデックスをベクトルにマッピングします。 | あり | あり | なし |
活性化層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| クリップされた ReLU 層は、しきい値処理を実行し、入力値がゼロよりも小さい場合はゼロに設定して、値が "クリップ上限" を超える場合はそのクリップ上限に設定します。 | あり | あり | あり |
| ELU 活性化層は、正の入力に対して恒等演算を実行し、負の入力に対して非線形となる指数演算を実行します。 | あり | あり | なし |
| leaky ReLU 層は、しきい値処理を実行し、入力値がゼロよりも小さい場合は固定のスカラーによって乗算されます。 | あり | あり | あり |
| ReLU 層は、入力の各要素に対してしきい値処理を実行し、値がゼロよりも小さい場合はゼロに設定します。 | あり | あり | あり |
|
| あり | あり | なし |
| Swish 活性化層は、層の入力に対して Swish 関数を適用します。 | あり | あり | なし |
| 双曲線正接 (tanh) 活性化層は、層の入力に対して tanh 関数を適用します。 | あり | あり | あり |
正規化層、ドロップアウト層、およびトリミング層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| バッチ正規化層は、ミニバッチ全体で各入力チャネルを正規化します。 | あり | あり | あり |
| 2 次元切り取り層は、入力に 2 次元のトリミングを適用します。 | あり | あり | あり |
| チャネル単位の局所応答 (クロス チャネル) 正規化層は、チャネル単位の正規化を行います。 | あり | あり | あり |
| ドロップアウト層は、与えられた確率でランダムに、入力要素をゼロに設定します。 | あり | あり | あり |
| グループ正規化層は、グループ化されたチャネル サブセット全体におけるデータのミニバッチの正規化を、各観測値について個別に行います。 | あり | あり | なし |
| アクターまたはクリティック ネットワークのスケーリング層。 コード生成では、 | あり | あり | あり |
プーリング層と逆プーリング層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| 平均プーリング層は、入力を四角形のプーリング領域に分割し、各領域の平均値を計算することによって、ダウンサンプリングを実行します。
MATLAB Function ブロックを使用して深層学習機能を実装する Simulink® モデルでは、非ゼロのパディング値をもつ平均プーリング層がネットワークに含まれている場合、シミュレーションでエラーが発生します。このような場合、MATLAB Function の代わりに Deep Neural Networks ライブラリのブロックを使用して、深層学習機能を実装します。 | あり | あり | あり |
| グローバル平均プーリング層は、入力の高さおよび幅の次元の平均を計算することによって、ダウンサンプリングを実行します。 | あり | あり | あり |
| グローバル最大プーリング層は、入力の高さおよび幅の次元の最大値を計算することによって、ダウンサンプリングを実行します。 | あり | あり | あり |
| 最大プーリング層は、入力を四角形のプーリング領域に分割し、各領域の最大値を計算することによって、ダウンサンプリングを実行します。 等しい最大値がカーネル ウィンドウの非対角成分に沿って存在する場合、 | あり | あり | あり |
| 最大逆プーリング層は、最大プーリング層の出力を逆プーリングします。 等しい最大値がカーネル ウィンドウの非対角成分に沿って存在する場合、 | あり | あり | なし |
結合層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| 加算層は、複数のニューラル ネットワーク層からの入力を要素単位で加算します。 | あり | あり | あり |
| 連結層は入力を取り、指定された次元に沿って入力を連結します。 | あり | あり | なし |
| 深さ連結層は、高さと幅が同じ入力を取り、3 番目の次元 (チャネルの次元) に沿ってこれらを連結します。 | あり | あり | あり |
オブジェクト検出層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| アンカー ボックス層は、オブジェクト検出ネットワークで使用される特徴マップのアンカー ボックスを保存します。 | あり | あり | あり |
| 深さから空間への 2 次元の変換層は、深さの次元のデータを 2 次元の空間データのブロックに置換します。 | あり | あり | あり |
| 焦点損失層は、焦点損失を使用してオブジェクトのクラスを予測します。 | あり | あり | あり |
| 空間から深さへの変換層は、入力の空間ブロックを深さの次元に置換します。特徴データを破棄することなく、異なるサイズの特徴マップを組み合わせる必要がある場合は、この層を使用します。 | あり | あり | あり |
| SSD マージ層は、後続の回帰や分類の損失計算に使用する特徴マップの出力をマージします。 | あり | あり | なし |
| ボックス回帰層は、スムーズ L1 損失関数を使用して、境界ボックスの位置を調整します。Fast R-CNN オブジェクトまたは Faster R-CNN オブジェクト検出ネットワークを作成するには、この層を使用します。 | あり | あり | あり |
| 領域提案ネットワーク (RPN) 分類層は、クロス エントロピー損失関数を使用して、イメージ領域を "オブジェクト" または "背景" として分類します。Faster R-CNN オブジェクト検出ネットワークを作成するには、この層を使用します。 | あり | あり | あり |
| YOLO v2 オブジェクト検出ネットワークの出力層の作成。 | あり | あり | あり |
| YOLO v2 オブジェクト検出ネットワークの再編成層の作成。 | あり | あり | あり |
| YOLO v2 オブジェクト検出ネットワークの変換層の作成。 | あり | あり | あり |
出力層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| 分類層は、互いに排他的なクラスを含むマルチクラス分類問題の交差エントロピー損失を計算します。 | あり | あり | あり |
| Dice ピクセル分類層は、一般化 Dice 損失を使用して、各イメージ ピクセルまたはボクセルのカテゴリカル ラベルを提供します。 | あり | あり | あり |
| 焦点損失層は、焦点損失を使用してオブジェクトのクラスを予測します。 | あり | あり | あり |
|
カスタム分類出力層を定義し、損失関数を指定する方法を示す例については、カスタム分類出力層の定義 (Deep Learning Toolbox)を参照してください。 カスタム回帰出力層を定義し、損失関数を指定する方法を示す例については、カスタム回帰出力層の定義 (Deep Learning Toolbox)を参照してください。 | あり | あり | あり |
| ピクセル分類層は、各イメージ ピクセルまたはボクセルのカテゴリカル ラベルを提供します。 | あり | あり | あり |
| ボックス回帰層は、スムーズ L1 損失関数を使用して、境界ボックスの位置を調整します。Fast R-CNN オブジェクトまたは Faster R-CNN オブジェクト検出ネットワークを作成するには、この層を使用します。 | あり | あり | あり |
| 回帰層は、回帰問題の半平均二乗誤差損失を計算します。 | あり | あり | あり |
| 領域提案ネットワーク (RPN) 分類層は、クロス エントロピー損失関数を使用して、イメージ領域を "オブジェクト" または "背景" として分類します。Faster R-CNN オブジェクト検出ネットワークを作成するには、この層を使用します。 | あり | あり | あり |
| シグモイド層によって、シグモイド関数が入力に適用されます。 | あり | あり | あり |
| ソフトマックス層は、入力にソフトマックス関数を適用します。 | あり | あり | あり |
カスタム Keras 層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| 入力を上限と下限の間でクリップします。 | あり | あり | なし |
| C スタイル (行優先) の順序であると仮定して、活性化を 1 次元にフラット化。 | あり | あり | あり |
| 空間データ用のグローバル平均プーリング層。 | あり | あり | あり |
| パラメトリック正規化線形ユニット。 | あり | あり | なし |
| シグモイド活性化層。 | あり | あり | あり |
| 双曲線正接活性化層。 | あり | あり | あり |
| 入力層が C スタイル (行優先) のストレージ順序であると仮定して、入力イメージのシーケンスをベクトルのシーケンスにフラット化します。 | あり | あり | なし |
| 2 次元入力のゼロ パディング層。 | あり | あり | あり |
カスタム ONNX 層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| 入力を上限と下限の間でクリップします。 | あり | あり | なし |
| 加算の前に入力の要素単位のスケーリングを実行する層。 | あり | あり | あり |
| ONNX と同じ方法で MATLAB の 2 次元イメージ バッチをフラットにし、 | あり | あり | なし |
| 入力テンソルの空間次元をチャネル次元へとフラットにします。 | あり | あり | あり |
| 空間データ用のグローバル平均プーリング層。 | あり | あり | あり |
| ONNX の単位行列演算子を実装する層。 | あり | あり | あり |
| パラメトリック正規化線形ユニット。 | あり | あり | なし |
| シグモイド活性化層。 | あり | あり | あり |
| 双曲線正接活性化層。 | あり | あり | あり |
| 固定バッチ サイズを検証します。 | あり | あり | あり |
カスタム層
層の名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
| 問題に関して定義される、学習可能パラメーターを伴う場合と伴わない場合があるカスタム層。 カスタム深層学習層の定義方法については、カスタム深層学習層の定義 (Deep Learning Toolbox)とコード生成用のカスタム深層学習層の定義 (Deep Learning Toolbox)を参照してください。 カスタム層を使用してネットワーク用のコードを生成する方法の例については、YOLO v3 深層学習ネットワークを使用したオブジェクト検出用のコード生成を参照してください。 カスタム層の出力は固定サイズの配列でなければなりません。
cuDNN ターゲットは、カスタム層の行優先コード生成と列優先コード生成の両方をサポートします。TensorRT ターゲットは、列優先コード生成のみをサポートします。 コード生成では、カスタム層に カスタム層と LSTM または GRU 層を含むシーケンス ネットワークのコード生成はサポートされていません。 次の場合は、
サポートされていない 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 によるコード生成でサポートされています。
名前 | 説明 | cuDNN | TensorRT | ARM Compute Library for Mali GPU |
---|---|---|---|---|
DAGNetwork (Deep Learning Toolbox) | 深層学習用の有向非循環グラフ (DAG) ネットワーク
| あり | あり | あり |
dlnetwork (Deep Learning Toolbox) | カスタム学習ループ向けの深層学習ネットワーク
| あり | あり | なし |
| LIDAR 点群内のオブジェクトを検出するための PointPillars ネットワーク
| あり | あり | なし |
SeriesNetwork (Deep Learning Toolbox) | 深層学習用の系列ネットワーク
| あり | あり | あり |
ssdObjectDetector (Computer Vision Toolbox) | SSD ベースの検出器を使用したオブジェクトの検出。
| あり | あり | なし |
yolov2ObjectDetector (Computer Vision Toolbox) | YOLO v2 オブジェクト検出器を使用したオブジェクトの検出
| あり | あり | あり |
| YOLO v3 を使用したオブジェクトの検出
| あり | あり | なし |
| YOLO v4 オブジェクト検出器を使用したオブジェクトの検出
| あり | あり | なし |
参考
関数
オブジェクト
coder.gpuConfig
|coder.CodeConfig
|coder.EmbeddedCodeConfig
|coder.gpuEnvConfig
|coder.CuDNNConfig
|coder.TensorRTConfig
関連するトピック
- 事前学習済みの深層ニューラル ネットワーク (Deep Learning Toolbox)
- 転移学習入門 (Deep Learning Toolbox)
- 分類用のシンプルな深層学習ニューラル ネットワークの作成 (Deep Learning Toolbox)
- コード生成用の事前学習済みのネットワークの読み込み
- cuDNN を使用した深層学習ネットワークのコード生成
- TensorRT を使用した深層学習ネットワークのコード生成
- ARM Mali GPU をターゲットとする深層学習ネットワークのコード生成