サポートしている層の種類 - DigitalMediaProfessionals/dv-sdk GitHub Wiki

AI プロセッサがサポートしている層の種類は限られています。 以下の表では層の種類とAI プロセッサにおけるFPGA ブロックへのマッピングの簡単な紹介をします。 Caffe やKeras の各層のサポートの詳細については後ほど提供いたします。 層がサポートされておらず、カスタムレイヤとしても定義されてない場合、ネットワーク変換ツールはエラーメッセージを出力します。

層の種類 マッピング
入力層 無視されます
データ層 無視されます
畳み込み層 畳み込み
バッチ正則化層 畳み込み
LRN 層 畳み込み。zia-firmware-c3-sd-100mhz/zia-firmware-c3-emmc-100mhz のバージョン7.0.20180215 以前で有効です。
スケール層 畳み込み
Concat 層 畳み込み or SW 実装
Eltwise 層 畳み込み
プーリング層 畳み込み*
内積層 zia-firmware-c3-sd-100mhz/zia-firmware-c3-emmc-100mhz のバージョン7.0.20180215以前では全結合層です。
ReLU 層 畳み込み or 全結合
TanH 層 畳み込み or 全結合
Flatten 層 SW 実装 or 無視されます
Reshape 層 無視されます
ソフトマックス層 SW 実装
ドロップアウト層 無視されます

*注: プーリング層自体は層とみなされません。 プーリング層が既存の畳み込み層へと統合できない場合、畳み込みが無効化されプーリングのパラメータが設定された追加の畳み込み層が作られます。

注:入力サイズが指定されていないネットワークを変換することはできません。

Caffe の層のサポート

この節ではCaffe フレームワークのためのサポートされた層のリストを紹介する。 以下の表では、サポート 列は現在ネットワーク変換ツールによりサポートされていることを示し、将来列はその層がAI プロセッサによりサポートされているが、ネットワーク変換ツールが対応してないこと、もしくはのちのバージョンでサポートされることを示します。

Caffe vision layer support

グループ サポート 制限
Convolution :heavy_check_mark: 最大カーネルサイズは 7x7
Pooling :heavy_check_mark: 確率的プーリングはサポートされていません
Spatial Pyramid Pooling (SSP) :x:
Crop :x:
Upsample :heavy_check_mark: サイズ2 でストライド2 、nearest neighbor の設定のみサポートしています
Deconvolution :heavy_check_mark: zia-firmware-c3-emmc/zia-firmware-c3-sd のバージョン7.0.20190410 以降でサポートしています。Dilated Deconvolution はサポートしていません。
Im2Col :x:

Caffe recurrent layer support

グループ サポート 制限
Recurrent :x:
RNN :x:
Long Short Term Memory (LSTM) :x:

Caffe common layer support

グループ サポート 制限
Inner product :heavy_check_mark: すべてのパラメータがサポートされているわけではありません。最大入力サイズは16384 です。
Dropout :x:
Embed - hot encode :x:

Caffe normalization layer support

グループ サポート 制限
Local Response Normalization (LRN) :heavy_check_mark: zia-firmware-c3-sd-100mhz/zia-firmware-c3-emmc-100mhz のバージョン7.0.20180215 以前で有効です。AlexNet とGoogLeNet で使われた設定のみサポートされています。
Mean Variance Normalization (MVN) :x:
Batch Normalization (BR) :heavy_check_mark: 現在は直前の畳み込み層に統合されます。

Caffe activation layer support

グループ サポート 制限
ReLU :heavy_check_mark:
Rectified ReLU :heavy_check_mark:
Leaky ReLU :heavy_check_mark:
Parametric ReLU :heavy_check_mark:
Exponential ELU :x:
Sigmoid :heavy_check_mark:
TanH :heavy_check_mark:
Absolute Value :heavy_check_mark:
Power func :x:
Exp func :x:
Log func :x:
BNLL func :x:
Threshold :x:
Bias :heavy_check_mark: 変換中にバイアスを追加します(ハードウェアの機能ではありません)。
Scale :x:

Caffe utility layer support

グループ サポート 制限
Flatten :heavy_check_mark: ソフトウェア実装です
Reshape :heavy_check_mark: 無視されます
Batch Reindex :x:
Split :x:
Concat :heavy_check_mark: ソフトウェア実装です
Slicing :x:
Eltwise :heavy_check_mark:
Filter / Mask :x:
Parameter :x:
Reduction :x:
Silence :x:
ArgMax :x:
Softmax :heavy_check_mark: ソフトウェア実装です
Python :x:

Caffe loss layer support

グループ サポート 制限
Multinomial Logistic Loss :x:
Infogain Loss :x:
Softmax with Loss :x:
Sum-ofSquares / Euclidean :x:
Hinge / Margin :x:
Accuracy / Top-k layer :x:
Contrastive Loss :x:

Keras の層のサポート

この節では、Keras のサポートされている層を紹介します。 以下の表では、サポート 列は現在ネットワーク変換ツールによりサポートされていることを示し、将来列はその層がAI プロセッサによりサポートされているが、ネットワーク変換ツールが対応してないこと、もしくはのちのバージョンでサポートされることを示します。

Noise, Own Layers, Loss, Metrics グループ内の関数はサポートされていません。

Keras convolution layer support

グループ サポート 制限
Conv1D :heavy_check_mark:
Conv2D :heavy_check_mark: 最大カーネルサイズは 7x7
SeparableConv2D (Depthwise) :heavy_check_mark: 最大カーネルサイズは 7x7
Conv2DTranspose :heavy_check_mark: zia-firmware-c3-emmc/zia-firmware-c3-sd のバージョン7.0.20190410 以降でサポートしています。Dilated Deconvolution はサポートしていません。
Conv3D :x:
Cropping1D :x:
Cropping2D :x:
Cropping3D :x:
UpSampling1D :heavy_check_mark: nearest neighbor の設定のみサポート
UpSampling2D :heavy_check_mark: サイズ2 でストライド2 、nearest neighbor の設定のみサポート
UpSampling3D :x:
ZeroPadding1D :heavy_check_mark:
ZeroPadding2D :heavy_check_mark:
ZeroPadding3D :x:

Keras pooling layer support

グループ サポート 制限
MaxPooling1D :heavy_check_mark:
MaxPooling2D :heavy_check_mark:
MaxPooling3D :x:
AveragePooling1D :heavy_check_mark:
AveragePooling2D :heavy_check_mark:
AveragePooling3D :x:
GlobalMaxPooling1D :heavy_check_mark:
GlobalAveragePooling1D :heavy_check_mark:
GlobalMaxPooling2D :heavy_check_mark:
GlobalAveragePooling2D :heavy_check_mark:

Keras locally connected layer support

グループ サポート 制限
LocallyConnected1D :x:
LocallyConnected2D :x:

Keras recurrent layer support

グループ サポート 制限
Simple RNN :x:
GRU :x:
LSTM :x:

Keras merge layer support

グループ サポート 制限
Add :heavy_check_mark:
Multiply :x:
Average :x:
Maximum :x:
Concatenate :heavy_check_mark: ソフトウェア実装です
Dot :heavy_check_mark:

Keras advanced activation layer support

グループ サポート 制限
LeakyReLU :heavy_check_mark:
PReLU :heavy_check_mark:
ELU :x:
ThresholdedReLU :x:

Keras normalization layer support

グループ サポート 制限
Normalization :heavy_check_mark:

Keras activation function support

グループ サポート 制限
Softplus :x:
Softsign :x:
ReLU :heavy_check_mark:
TanH :heavy_check_mark:
Sigmoid :heavy_check_mark:
Hard_sigmoid :x:
Softmax :heavy_check_mark:
Linear :heavy_check_mark: