更新时间:2021-03-18 GMT+08:00
分享

简易量化配置文件说明

calibration_config.proto文件参数说明如表1所示。

表1 calibration_config.proto参数说明

消息

是否必填

类型

字段

说明

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位。

基于该文件生成的简易量化配置文件quant.cfg样例如下所示:
# 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
        }
    }
}
分享:

    相关文档

    相关产品

close