配置文件及参数说明
量化配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
{ "version":1, "activation_offset":true, "do_fusion":true, "skip_fusion_layers":[], "conv1":{ "quant_enable":true, "activation_quant_params":{ "max_percentile":0.999999, "min_percentile":0.999999, "search_range":[ 0.7, 1.3 ], "search_step":0.01 "asymmetric":false }, "weight_quant_params":{ "channel_wise":true } }, "end_point":{ "quant_enable":true, "activation_quant_params":{ "max_percentile":0.999999, "min_percentile":0.999999, "search_range":[ 0.7, 1.3 ], "search_step":0.01 "asymmetric":false }, "weight_quant_params":{ "channel_wise":false } }, "layer1.0.conv1":{ "quant_enable":true, "activation_quant_params":{ "max_percentile":0.999999, "min_percentile":0.999999, "search_range":[ 0.7, 1.3 ], "search_step":0.01 "asymmetric":false }, "weight_quant_params":{ "channel_wise":true } }, "layer1.0.conv2":{ "quant_enable":true, "activation_quant_params":{ "max_percentile":0.999999, "min_percentile":0.999999, "search_range":[ 0.7, 1.3 ], "search_step":0.01 "asymmetric":false }, "weight_quant_params":{ "channel_wise":true } } } |
参数说明
配置文件中参数说明如下:
作用 |
控制量化配置文件版本号。 |
---|---|
类型 |
int |
取值范围 |
1 |
参数说明 |
目前仅有一个版本号1。 |
推荐配置 |
1 |
可选或者必选 |
可选 |
作用 |
控制数据量化是对称量化还是非对称量化。全局配置参数。 若配置文件中同时存在activation_offset和asymmetric参数,asymmetric参数优先级>activation_offset参数。 |
---|---|
类型 |
bool |
取值范围 |
true或false |
参数说明 |
|
推荐配置 |
true |
必选或可选 |
可选 |
作用 |
是否开启融合功能。 |
---|---|
类型 |
bool |
取值范围 |
true或false |
参数说明 |
当前支持融合的层以及融合规则请参见工具实现的融合功能。 |
推荐配置 |
true |
可选或必选 |
可选 |
作用 |
跳过可融合的层。 |
---|---|
类型 |
string |
取值范围 |
可融合层的层名 当前支持融合的层以及融合规则请参见工具实现的融合功能。 |
参数说明 |
不需要做融合的层。 |
推荐配置 |
- |
可选或必选 |
可选 |
作用 |
指定某个网络层的量化配置。 |
---|---|
类型 |
object |
取值范围 |
无 |
参数说明 |
参数内部包含如下参数:
|
推荐配置 |
无 |
必选或可选 |
可选 |
作用 |
该层是否做量化。 |
---|---|
类型 |
bool |
取值范围 |
true或false |
参数说明 |
|
推荐配置 |
true |
必选或可选 |
可选 |
作用 |
该层数据量化的参数。 |
---|---|
类型 |
object |
取值范围 |
无 |
参数说明 |
activation_quant_params内部包含如下参数:
|
推荐配置 |
无 |
必选或可选 |
可选 |
作用 |
该层权重量化的参数。 |
---|---|
类型 |
object |
取值范围 |
无 |
参数说明 |
包括参数:channel_wise |
推荐配置 |
无 |
必选或可选 |
可选 |
作用 |
最大值搜索位置。 |
---|---|
类型 |
float |
取值范围 |
(0.5,1] |
参数说明 |
在从大到小排序的一组数中,决定取第多少大的数,比如有100个数,1.0表示取第100-100*1.0=0,对应的就是第一个大的数。 对待量化的数据做截断处理时,该值越大,说明截断的上边界越接近待量化数据的最大值。 |
推荐配置 |
0.999999 |
必选或可选 |
可选 |
作用 |
最小值搜索位置。 |
---|---|
类型 |
float |
取值范围 |
(0.5,1] |
参数说明 |
在从小到大排序的一组数中,决定取第多少小的数,比如有100个数,1.0表示取第100-100*1.0=0,对应的就是第一个小的数。 对待量化的数据做截断处理时,该值越大,说明截断的下边界越接近待量化数据的最小值。 |
推荐配置 |
0.999999 |
必选或可选 |
可选 |
作用 |
控制量化因子的搜索范围[search_range_start, search_range_end]。 |
---|---|
类型 |
list,列表中两个元素类型为float |
取值范围 |
0<search_range_start<search_range_end |
参数说明 |
控制截断的上边界的浮动范围。
|
推荐配置 |
[0.7,1.3] |
必选或可选 |
可选 |
作用 |
控制量化因子的搜索步长。 |
---|---|
类型 |
float |
取值范围 |
(0, (search_range_end-search_range_start)] |
参数说明 |
控制截断的上边界的浮动范围步长,值越小,浮动步长越小。 搜索次数search_iteration=(search_range_end-search_range_start)/search_step,如果搜索次数过大,搜索时间会很长,该场景下将会导致类似进程卡死的问题。 |
推荐配置 |
0.01 |
必选或可选 |
可选 |
作用 |
控制数据量化是对称量化还是非对称量化。用于控制逐层量化算法的选择。 若配置文件中同时存在activation_offset和asymmetric参数,asymmetric参数优先级>activation_offset参数。 |
---|---|
类型 |
bool |
取值范围 |
true或false |
参数说明 |
|
推荐配置 |
true |
必选或可选 |
可选 |
作用 |
是否对每个channel采用不同的量化因子。 |
---|---|
类型 |
bool |
取值范围 |
true或false |
参数说明 |
说明:
全连接层(nn.Dense)不支持channel_wise设置为true。 |
推荐配置 |
true |
必选或可选 |
可选 |