消息 |
是否必填 |
类型 |
字段 |
说明 |
|---|---|---|---|---|
AMCTConfig |
- |
- |
- |
AMCT训练后量化的简易配置。 |
optional |
bool |
activation_offset |
数据量化是否带offset。全局配置参数。
|
|
repeated |
string |
skip_layers |
不需要量化层的层名。 |
|
repeated |
string |
skip_layer_types |
不需要量化的层类型。 |
|
optional |
int32 |
version |
简易配置文件的版本。 |
|
optional |
CalibrationConfig |
common_config |
通用的量化配置,全局量化配置参数。若某层未被override_layer_types或者override_layer_configs重写,则使用该配置。 参数优先级:override_layer_configs>override_layer_types>common_config |
|
repeated |
OverrideLayerType |
override_layer_types |
重写某一类型层的量化配置,即对哪些层进行差异化量化。 例如全局量化配置参数配置的量化因子搜索步长为0.01,可以通过该参数对部分层进行差异化量化,可以配置搜索步长为0.02。 参数优先级:override_layer_configs>override_layer_types>common_config |
|
repeated |
OverrideLayer |
override_layer_configs |
重写某一层的量化配置,即对哪些层进行差异化量化。 例如全局量化配置参数配置的量化因子搜索步长为0.01,可以通过该参数对部分层进行差异化量化,可以配置搜索步长为0.02。 参数优先级:override_layer_configs>override_layer_types>common_config |
|
optional |
bool |
do_fusion |
是否开启BN融合功能,默认为true,表示开启该功能。 |
|
repeated |
string |
skip_fusion_layers |
跳过bn融合的层,配置之后这些层不会进行bn融合。 |
|
OverrideLayerType |
required |
string |
layer_type |
支持量化的层类型的名称。 |
required |
CalibrationConfig |
calibration_config |
重置的量化配置。 |
|
OverrideLayer |
- |
- |
- |
重置某层量化配置。 |
required |
string |
layer_name |
被重置层的层名。 |
|
required |
CalibrationConfig |
calibration_config |
重置的量化配置。 |
|
CalibrationConfig |
- |
- |
- |
Calibration量化的配置。 |
- |
ARQuantize |
arq_quantize |
权重量化算法配置。 arq_quantize:ARQ量化算法配置。 |
|
- |
FMRQuantize |
ifmr_quantize |
数据量化算法配置。 ifmr_quantize:IFMR量化算法配置。 |
|
ARQuantize |
- |
- |
- |
ARQ量化算法配置。 |
optional |
bool |
channel_wise |
是否对每个channel采用不同的量化因子。
|
|
FMRQuantize |
- |
- |
- |
FMR量化算法配置。 |
optional |
float |
search_range_start |
量化因子搜索范围左边界。 |
|
optional |
float |
search_range_end |
量化因子搜索范围右边界。 |
|
optional |
float |
search_step |
量化因子搜索步长。 |
|
optional |
float |
max_percentile |
最大值搜索位置。 |
|
optional |
float |
min_percentile |
最小值搜索位置。 |
|
optional |
bool |
symmetric |
是否进行对称量化。用于控制逐层量化算法的选择。
如果override_layer_configs、override_layer_types、common_config配置项都配置该参数,或者配置了 activation_offset参数,则生效优先级为: override_layer_configs>override_layer_types>common_config>activation_offset |
基于该文件构造的简易配置文件quant.cfg样例如下所示:Optype需要配置为基于Ascend IR定义的算子类型,详细对应关系请参见表2。
# global quantize parameter
activation_offset : true
version : 1
skip_layers : "conv_1"
skip_layer_types:"Optype"
do_fusion: true
skip_fusion_layers : "conv_1"
common_config : {
arq_quantize : {
channel_wise : true
}
ifmr_quantize : {
search_range_start : 0.7
search_range_end : 1.3
search_step : 0.01
max_percentile : 0.999999
min_percentile : 0.999999
symmetric : true
}
}
override_layer_types : {
layer_type : "Optype"
calibration_config : {
arq_quantize : {
channel_wise : false
}
ifmr_quantize : {
search_range_start : 0.8
search_range_end : 1.2
search_step : 0.02
max_percentile : 0.999999
min_percentile : 0.999999
symmetric : false
}
}
}
override_layer_configs : {
layer_name : "conv_2"
calibration_config : {
arq_quantize : {
channel_wise : true
}
ifmr_quantize : {
search_range_start : 0.8
search_range_end : 1.2
search_step : 0.02
max_percentile : 0.999999
min_percentile : 0.999999
symmetric : false
}
}
}
框架 |
支持的层类型 |
约束 |
对应Ascend IR定义的层类型 |
|---|---|---|---|
Caffe |
InnerProduct:全连接层 |
transpose属性为false,axis为1 |
FullyConnection |
Convolution:卷积层 |
dilation为1、filter维度为4 |
Conv2D |
|
TensorFlow |
MatMul:全连接层 |
transpose_a为False, transpose_b为False,adjoint_a为False,adjoint_b为False |
MatMulV2 |
Conv2D:卷积层 |
weight的输入来源不含有placeholder等可动态变化的节点,且weight的节点类型只能是const。 |
Conv2D |
|
DepthwiseConv2dNative:Depthwise卷积层 |
dilation为1 |
DepthwiseConv2D |
|
ONNX |
Conv:卷积层 |
- |
Conv2D |
Gemm:广义矩阵乘 |
transpose_a=false |
MatMulV2 |