支持量化的层及约束
 - 若网络模型输入数据类型或权重数据类型为Float16或混合精度类型(Float32/Float16共存),AMCT会关闭如下算子的量化功能:
AvgPool、Pooling、AvgPoolV2、MaxPool、MaxPoolV3、Pooling、Add、Eltwise、BatchMatMulV2(两路输入都为变量tensor)。
 
- 由于硬件约束,该版本不建议使用非均匀量化的功能,获取不到性能收益。
 
框架  | 
支持的层类型  | 
约束  | 
对应Ascend IR定义的层类型  | 
|---|---|---|---|
Caffe  | 
InnerProduct:全连接层  | 
transpose属性为false,axis为1  | 
FullyConnection  | 
Convolution:卷积层  | 
filter维度为4  | 
Conv2D  | 
|
Deconvolution: 反卷积层  | 
dilation为1、filter维度为4  | 
Deconvolution  | 
|
Pooling  | 
  | 
Pooling  | 
|
Eltwise  | 
只做tensor量化且operation=1  | 
Eltwise  | 
|
TensorFlow  | 
MatMul:全连接层  | 
  | 
MatMulV2  | 
Conv2D:卷积层  | 
weight的输入来源不含有placeholder等可动态变化的节点  | 
Conv2D  | 
|
DepthwiseConv2dNative:Depthwise卷积层  | 
weight的输入来源不含有placeholder等可动态变化的节点  | 
DepthwiseConv2D  | 
|
Conv2DBackpropInput  | 
dilation为1,weight的输入来源不含有placeholder等可动态变化的节点  | 
Conv2DBackpropInput  | 
|
BatchMatMulV2  | 
BatchMatMulV2  | 
||
AvgPool  | 
不支持移位N操作  | 
AvgPool  | 
|
Conv3D  | 
dilation_d为1  | 
Conv3D  | 
|
MaxPool  | 
只做tensor量化  | 
MaxPool、MaxPoolV3  | 
|
Add  | 
只做tensor量化  | 
Add  | 
|
ONNX  | 
Conv:卷积层  | 
  | 
Conv2D、Conv3D  | 
Gemm:广义矩阵乘  | 
  | 
MatMulV2  | 
|
ConvTranspose:转置卷积  | 
  | 
Conv2DTranspose  | 
|
MatMul  | 
BatchMatMulV2  | 
||
AveragePool  | 
global_pooling为false,不支持移位N操作  | 
AvgPoolV2  | 
|
MaxPool  | 
只做tensor量化  | 
MaxPool、MaxPoolV3  | 
|
Add  | 
只做tensor量化  | 
Add  | 
框架  | 
支持的层类型  | 
约束  | 
对应Ascend IR定义的层类型  | 
|---|---|---|---|
Caffe  | 
Convolution:卷积层  | 
dilation为1、filter维度为4  | 
Conv2D  | 
InnerProduct:全连接层  | 
transpose属性为false,axis为1  | 
FullyConnection  | 
|
TensorFlow  | 
Conv2D:卷积层  | 
dilation为1  | 
Conv2D  | 
MatMul:全连接层  | 
transpose_a为False  | 
MatMulV2  | 
|
ONNX  | 
Conv:卷积层  | 
-  | 
Conv2D  | 
Gemm:广义矩阵乘  | 
transpose_a=false  | 
MatMulV2  | 
Ascend IR定义的层类型  | 
仅权重量化 权重ARQ中channel_wise=true  | 
仅权重量化 权重ARQ中asymmetric=true  | 
权重和数据都量化 权重ARQ中channel_wise=true  | 
权重和数据都量化 权重ARQ中asymmetric=true  | 
约束  | 
|---|---|---|---|---|---|
MatMulV2  | 
√  | 
√  | 
×  | 
×  | 
第二路的输入来源不含有placeholder等可动态变化的节点。  | 
BatchMatMulV2  | 
√  | 
√  | 
×  | 
×  | 
第二路的输入来源不含有placeholder等可动态变化的节点。  | 
其中:
- √表示支持,×表示该场景量化会异常。
 - 权重ARQ中channel_wise=true:表示每个channel独立量化,量化因子不同。
 - 权重ARQ中asymmetric=true:表示权重量化使用非对称量化。
 - 不支持:表示该算子不支持仅权重量化特性。
 
仅权重量化特性,仅在以下产品型号支持:
Atlas 推理系列产品
Atlas A2训练系列产品/Atlas 800I A2推理产品