次の表に、vai_q_tensorflow2 でサポートされる動作および API を示します。
レイヤー タイプ | サポートされるレイヤー | 説明 |
---|---|---|
Core | tf.keras.layers.InputLayer | |
Core | tf.keras.layers.Dense | |
Core | tf.keras.layers.Activation |
activation が relu または linear の場合、量子化されます。 activation が sigmoid または swish の場合、デフォルトでは hard-sigmoid または hard-swish に変換されてから量子化されます。 それ以外の場合、量子化されません。 |
Convolution | tf.keras.layers.Conv2D | |
Convolution | tf.keras.layers.DepthwiseConv2D | |
Convolution | tf.keras.layers.Conv2DTranspose | |
Convolution | tf.keras.layers.SeparableConv2D | |
Pooling | tf.keras.layers.AveragePooling2D | |
Pooling | tf.keras.layers.MaxPooling2D | |
Pooling | tf.keras.layers.GlobalAveragePooling | |
Normalization | tf.keras.layers.BatchNormalization | デフォルトでは、BatchNormalization レイヤーは前のたたみ込みレイヤーと融合されます。結合できない場合は、depthwise たたみ込みに変換されます。 QAT モードで |
Regularization | tf.keras.layers.Dropout | デフォルトでは、ドロップアウト レイヤーは除去されます。QAT モードで remove_dropout = FALSE に設定されていると、ドロップアウト レイヤーは保持されます。get_deploy_model 関数を呼び出すと、除去されます。 |
Reshaping | tf.keras.layers.Reshape | |
Reshaping | tf.keras.layers.Flatten | |
Reshaping | tf.keras.UpSampling2D | |
Reshaping | tf.keras.ZeroPadding2D | |
Merging | tf.keras.layers.Concatenate | |
Merging | tf.keras.layers.Add | |
Merging | tf.keras.layers.Multiply | |
Activation | tf.keras.layers.ReLU | |
Activation | tf.keras.layers.Softmax | Softmax レイヤーの入力が量子化されます。スタンドアロン Softmax IP 上で実行して高速化できます。 |
Activation | tf.keras.layers.LeakyReLU | 「alpha=0」の LeakyReLU レイヤーのみ。量子化され、DPU にマップできます。クオンタイザーは内部的にアルファ値を 26/256 に自動変換して DPU の実装に合わせます。その他の値を持つ LeakyReLU レイヤーは量子化されず、CPU にマップされます。 |
hard_sigmoid | tf.keras.layer.ReLU(6.)(x + 3.)* (1./ 6.) | サポートされる hard_sigmoid は、Mobilenet_v3 から得られます。 tf.keras.Activation.hard_sigmoid は現時点ではサポートされておらず、量子化されません。 |
Activation | tf.keras.layers.PReLU |
注記: これらのサポートされるレイヤーについて、DPU で制限がある場合があります。その場合、コンパイル中に CPU にロールバックされる可能性があります。詳細は、サポートされている演算子と DPU の制限 を参照してください。