下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

支持量化的层及约束

本章节给出不同框架可量化的层以及相关约束。

  • 若网络模型输入数据类型或权重数据类型为Float16或混合精度类型(Float32/Float16共存),AMCT会关闭如下算子的量化功能:

    AvgPool、Pooling、AvgPoolV2、MaxPool、MaxPoolV3、Pooling、Add、Eltwise、BatchMatMulV2(两路输入都为变量tensor)。

  • 由于硬件约束,该版本不建议使用非均匀量化的功能,获取不到性能收益。
表1 均匀量化支持的层及约束

框架

支持的层类型

约束

对应Ascend IR定义的层类型

Caffe

InnerProduct:全连接层

transpose属性为false,axis为1

FullyConnection

Convolution:卷积层

filter维度为4

Conv2D

Deconvolution: 反卷积层

dilation为1、filter维度为4

Deconvolution

Pooling

  • mode为1,全量化(weight+tensor),global_pooling为false,不支持移位N操作
  • mode为0,只做tensor量化

Pooling

Eltwise

只做tensor量化

Eltwise

TensorFlow

MatMul:全连接层

  • transpose_a为False, transpose_b为False,adjoint_a为False,adjoint_b为False
  • weight的输入来源不含有placeholder等可动态变化的节点

MatMulV2

Conv2D:卷积层

weight的输入来源不含有placeholder等可动态变化的节点

Conv2D

DepthwiseConv2dNative:Depthwise卷积层

weight的输入来源不含有placeholder等可动态变化的节点

DepthwiseConv2D

Conv2DBackpropInput

dilation为1,weight的输入来源不含有placeholder等可动态变化的节点

Conv2DBackpropInput

BatchMatMulV2

  • adj_x=False
  • 如果第二路输入为常量const,则要求为2维
  • 当两路输入都为变量tensor时,仅支持INT8对称量化

    两路输入都为变量tensor量化场景,只在Atlas 200/500 A2推理产品Atlas A2训练系列产品能获得收益,其他产品型号量化后精度会下降。

BatchMatMulV2

AvgPool

不支持移位N操作

AvgPool

Conv3D

dilation_d为1

Conv3D

MaxPool

只做tensor量化

MaxPool、MaxPoolV3

Add

只做tensor量化

Add

ONNX

Conv:卷积层

  • filter维度为5的情况下,要求dilation_d为1
  • weight的输入来源不含有placeholder等可动态变化的节点

Conv2D、Conv3D

Gemm:广义矩阵乘

  • transpose_a=false
  • weight的输入来源不含有placeholder等可动态变化的节点

MatMulV2

ConvTranspose:转置卷积

  • dilation为1、filter维度为4
  • weight的输入来源不含有placeholder等可动态变化的节点

Conv2DTranspose

MatMul

  • 如果第二路输入为常量const,则要求为2维
  • 当两路输入都为变量tensor时,仅支持INT8对称量化

    两路输入都为变量tensor量化场景,只在Atlas 200/500 A2推理产品Atlas A2训练系列产品能获得收益,其他产品型号量化后精度会下降

  • weight的输入来源不含有placeholder等可动态变化的节点

BatchMatMulV2

AveragePool

global_pooling为false,不支持移位N操作

AvgPoolV2

MaxPool

只做tensor量化

MaxPool、MaxPoolV3

Add

只做tensor量化

Add

表2 非均匀量化支持的层及约束

框架

支持的层类型

约束

对应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

表3 仅权重量化场景支持的层及约束(该特性仅在Atlas 推理系列产品Atlas A2训练系列产品支持)

Ascend IR定义的层类型

仅权重量化

权重ARQ中channel_wise=true

仅权重量化

权重ARQ中asymmetric=true

权重和数据都量化

权重ARQ中channel_wise=true

权重和数据都量化

权重ARQ中asymmetric=true

约束

Conv2D

×

weight的输入来源不含有placeholder等可动态变化的节点。

DepthwiseConv2D

×

weight的输入来源不含有placeholder等可动态变化的节点。

FullyConnection

×

×

-

MatMulV2

×

×

第二路的输入来源不含有placeholder等可动态变化的节点。

Deconvolution

×

weight的输入来源不含有placeholder等可动态变化的节点。

Conv2DTranspose

×

weight的输入来源不含有placeholder等可动态变化的节点。

Conv2DBackpropInput

×

weight的输入来源不含有placeholder等可动态变化的节点。

BatchMatMulV2

×

×

第二路的输入来源不含有placeholder等可动态变化的节点。

Conv3D

×

weight的输入来源不含有placeholder等可动态变化的节点。

Pooling

不支持

不支持

×

×

-

AvgPool

不支持

不支持

×

×

-

AvgPoolV2

不支持

不支持

×

×

-

其中:

  • √表示支持,×表示该场景量化会异常。
  • 权重ARQ中channel_wise=true:表示每个channel独立量化,量化因子不同。
  • 权重ARQ中asymmetric=true:表示权重量化使用非对称量化。
  • 不支持:表示该算子不支持仅权重量化特性。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词