vai_q_tensorflow2 支持的运算和 API - 3.5 简体中文

Vitis AI 用户指南 (UG1414)

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 简体中文

下表列出了 vai_q_tensorflow2 支持的运算和 API。

表 1. vai_q_tensorflow2 支持的层
层类型  受支持的层 描述
Core tf.keras.layers.InputLayer  
Core tf.keras.layers.Dense  
Core tf.keras.layers.Activation 如果 activationrelulinear,则对其进行量化。

如果 activationsigmoidswish,默认情况下将被转换为 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 层与先前的卷积层融合。如果无法组合,则会转换为逐通道卷积。

在 QAT 模式下,如果 train_with_bn 设置为 TRUE,则 BatchNormalization 层发生伪融合。调用 get_deploy_model 函数时,这些层会发生融合。

Regularization tf.keras.layers.Dropout  默认情况下,dropout 层会被移除。在 QAT 模式下,如果 tremove_dropout 设置为 FALSE,则保留 dropout 层。当调用 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。量化器会在内部将 alpha 值自动转换为 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 限制