简易量化配置文件说明
calibration_config.proto文件参数说明如表1所示。
消息 |
是否必填 |
类型 |
字段 |
说明 |
---|---|---|---|---|
AMCTConfig |
- |
- |
- |
模型小型化工具的简易量化配置。 |
optional |
uint32 |
batch_num |
量化使用的batch数量。 |
|
optional |
bool |
activation_offset |
数据量化是否带offset。 |
|
optional |
bool |
weight_offset |
权重量化是否带offset。当前只支持配置为false。 |
|
required |
CalibrationConfig |
conv_calibration_config |
卷积层的量化配置,适用于所有未被重新配置的卷积层。 |
|
required |
CalibrationConfig |
fc_calibration_config |
全连接层和平均下采样pooling层的量化配置,适用于所有未被重新配置的全连接层和平均下采样pooling层。 |
|
repeated |
string |
skip_layers |
不需要量化层的层名。 |
|
repeated |
OverrideLayer |
override_layer_configs |
重新配置某层的量化配置,量化层名需要保持唯一。 |
|
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量化算法配置。 |
required |
bool |
channel_wise |
是否对每个channel采用不同的量化因子。 |
|
FMRQuantize |
- |
- |
- |
FMR量化算法配置。 |
required |
float |
search_range_start |
量化因子搜索范围左边界。简易配置文件中,float类型数值需要精确到小数点后6位。 |
|
required |
float |
search_range_end |
量化因子搜索范围右边界。简易配置文件中,float类型数值需要精确到小数点后6位。 |
|
required |
float |
search_step |
量化因子搜索步长。简易配置文件中,float类型数值需要精确到小数点后6位。 |
|
required |
float |
max_percentile |
最大值搜索位置。简易配置文件中,float类型数值需要精确到小数点后6位。 |
|
required |
float |
min_percentile |
最小值搜索位置。简易配置文件中,float类型数值需要精确到小数点后6位。 |
# global quantize parameter activation_offset : true batch_num : 2 conv_calibration_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 } } fc_calibration_config : { arq_quantize : { channel_wise : false } ifmr_quantize : { search_range_start : 0.7 search_range_end : 1.3 search_step : 0.01 max_percentile : 0.999999 min_percentile : 0.999999 } } # repeated skip layers skip_layers : "conv_1" # overriding layers, set each layer's quantize parameter with layer_name 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 } } } override_layer_configs : { layer_name : "fc_5" 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 } } }
