---
title: 训练后量化简易配置文件
description: "calibration_config_caffe.proto文件参数说明如表1所示，该文件所在目录为：AMCT安装目录/amct_caffe/proto/calibration_config_caffe.proto。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/amct/atlasamct_16_0288.html
sourcePath: /source/zh/canncommercial/900/devaids/amct/atlasamct_16_0288.html
indexId: 2a9fc8f0941978e4cd49968fb21a610f2c0bbd623981791e1d5de90be237c45865
---
# 训练后量化简易配置文件

calibration_config_caffe.proto文件参数说明如表1所示，该文件所在目录为：AMCT安装目录/amct_caffe/proto/calibration_config_caffe.proto。


**表1 calibration_config_caffe.proto参数说明**

| 消息 | 是否必填 | 类型 | 字段 | 说明 |
| --- | --- | --- | --- | --- |
| AMCTConfig | \- | \- | \- | AMCT训练后量化的简易配置。 |
| AMCTConfig | optional | uint32 | batch\_num | 量化使用的batch数量。 |
| AMCTConfig | optional | bool | activation\_offset | 数据量化是否带offset。全局配置参数。 true：带offset，数据量化时为非对称量化。 false：不带offset，数据量化时为对称量化。 |
| AMCTConfig | optional | bool | joint\_quant | 是否进行Eltwise联合量化，默认为false，表示关闭联合量化功能。 开启后对部分网络可能会存在性能提升但是精度下降的问题。 |
| AMCTConfig | repeated | string | skip\_layers | 不需要量化层的层名。 |
| AMCTConfig | repeated | string | skip\_layer\_types | 不需要量化的层类型。 |
| AMCTConfig | optional | CalibrationConfig | common\_config | 通用的量化配置，全局量化配置参数。若某层未被override\_layer\_types或者override\_layer\_configs重写，则使用该配置。 参数优先级：override\_layer\_configs>override\_layer\_types>common\_config |
| AMCTConfig | repeated | OverrideLayerType | override\_layer\_types | 重写某一类型层的量化配置，即对哪些层进行差异化量化。 例如全局量化配置参数配置的量化因子搜索步长为0.01，可以通过该参数对部分层进行差异化量化，可以配置搜索步长为0.02。 参数优先级：override\_layer\_configs>override\_layer\_types>common\_config |
| AMCTConfig | repeated | OverrideLayer | override\_layer\_configs | 重写某一层的量化配置，即对哪些层进行差异化量化。 例如全局量化配置参数配置的量化因子搜索步长为0.01，可以通过该参数对部分层进行差异化量化，可以配置搜索步长为0.02。 参数优先级：override\_layer\_configs>override\_layer\_types>common\_config |
| AMCTConfig | optional | bool | do\_fusion | 是否开启BN融合功能，默认为true，表示开启该功能。 |
| AMCTConfig | repeated | string | skip\_fusion\_layers | 跳过BN融合的层，配置之后这些层不会进行BN融合。 |
| AMCTConfig | optional | CalibrationConfig | conv\_calibration\_config | 卷积层的量化配置，适用于所有未被重新配置的卷积层和反卷积层。Deprecated，不推荐用户使用。 |
| AMCTConfig | optional | CalibrationConfig | fc\_calibration\_config | 全连接层和平均下采样pooling层的量化配置，适用于所有未被重新配置的全连接层和平均下采样pooling层。Deprecated，不推荐用户使用。 |
| OverrideLayerType | \- | \- | \- | 重置某层类型的量化配置。 |
| OverrideLayerType | required | string | layer\_type | 支持量化的层类型的名字。 |
| OverrideLayerType | required | CalibrationConfig | calibration\_config | 重置的量化配置。 |
| OverrideLayer | \- | \- | \- | 重置某层量化配置。 |
| OverrideLayer | required | string | layer\_name | 被重置层的层名。 |
| OverrideLayer | required | CalibrationConfig | calibration\_config | 重置的量化配置。 |
| CalibrationConfig | \- | \- | \- | Calibration量化的配置。 |
| CalibrationConfig | \- | ARQuantize | arq\_quantize | 权重量化算法配置。 arq\_quantize：ARQ量化算法配置。 |
| CalibrationConfig | \- | FMRQuantize | ifmr\_quantize | 数据量化算法配置。 ifmr\_quantize：IFMR量化算法配置。 |
| CalibrationConfig | \- | HFMGQuantize | hfmg\_quantize | 数据量化算法配置。 hfmg\_quantize：HFMG量化算法配置。 |
| ARQuantize | \- | \- | \- | ARQ量化算法配置。算法介绍请参见ARQ。 |
| ARQuantize | optional | bool | channel\_wise | 是否对每个channel采用不同的量化因子。 |
| FMRQuantize | \- | \- | \- | FMR数据量化算法配置。算法介绍请参见IFMR数据量化算法。 该算法与HFMGQuantize算法不能同时配置，若同时配置，则以配置文件中最后配置的量化算法为准。 |
| FMRQuantize | optional | float | search\_range\_start | 量化因子搜索范围左边界。 |
| FMRQuantize | optional | float | search\_range\_end | 量化因子搜索范围右边界。 |
| FMRQuantize | optional | float | search\_step | 量化因子搜索步长。 |
| FMRQuantize | optional | float | max\_percentile | 最大值搜索位置。 |
| FMRQuantize | optional | float | min\_percentile | 最小值搜索位置。 |
| FMRQuantize | optional | bool | asymmetric | 是否进行对称量化。用于控制逐层量化算法的选择。 true：非对称量化 false：对称量化 如果override\_layer\_configs、override\_layer\_types、common\_config配置项都配置该参数，或者配置了 activation\_offset参数，则生效优先级为： override\_layer\_configs>override\_layer\_types>common\_config>activation\_offset |
| HFMGQuantize | \- | \- | \- | HFMG数据量化算法配置。算法介绍请参见HFMG数据量化算法。 该算法与FMRQuantize算法不能同时配置，若同时配置，则以配置文件中最后配置的量化算法为准。 |
| HFMGQuantize | optional | uint32 | num\_of\_bins | 直方图的bin（直方图中的一个最小单位直方图形）数目，支持的范围为{1024, 2048, 4096, 8192}。 默认值为4096。 |
| HFMGQuantize | optional | bool | symmetric | 是否进行对称量化。用于控制逐层量化算法的选择。 true：非对称量化 false：对称量化 如果override\_layer\_configs、override\_layer\_types、common\_config配置项都配置该参数，或者配置了 activation\_offset参数，则生效优先级为： override\_layer\_configs>override\_layer\_types>common\_config>activation\_offset |


基于该文件构造的训练后量化简易配置文件quant.cfg样例如下所示：
```
# global quantize parameter
batch_num : 2
activation_offset : true
joint_quant : false
skip_layers : "
Opname
"
skip_layer_types:"
Optype
"
do_fusion: true
skip_fusion_layers : "
Opname
"
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
asymmetric : 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
asymmetric : false
}
}
}
override_layer_configs : {
layer_name : "
Opname
"
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
asymmetric : false
}
}
}
```


如果数据量化算法使用HFMG，则上述配置文件中加粗部分可以替换成如下参考参数信息，举例如下（如下配置信息只是样例，请根据实际情况进行修改）：

```
# global quantize parameter
activation_offset : true
batch_num : 1
common_config : {
hfmg_quantize : {
num_of_bins : 4096
a
symmetric : false
}
}
```
