参数配置说明
作用 |
推理模式 |
---|---|
类型 |
enum |
取值范围 |
USE_CPU |
参数说明 |
USE_CPU:使用CPU做推理。 |
推荐配置 |
USE_CPU |
必选或可选 |
必选 |
作用 |
量化模式 |
---|---|
类型 |
enum |
取值范围 |
|
参数说明 |
根据权重和数据在量化时是否有偏移,量化的映射公式有两种:
|
推荐配置 |
HALF_OFFSET |
必选或可选 |
必选 |
作用 |
权重量化模式 |
---|---|
类型 |
enum |
取值范围 |
|
参数说明 |
对于卷积算子,可能有多个卷积核,多个对应的量化参数可能不一样。
|
推荐配置 |
VECTOR_TYPE |
必选或可选 |
必选 |
作用 |
预处理及输入相关参数 |
---|---|
类型 |
Struct |
取值范围 |
无。 |
参数说明 |
指定预处理及输入相关参数。preprocess_parameter参数的数量与网络的输入算子数量必须相同。 在preprocess_parameter内部包含如下参数:
|
推荐配置 |
无 |
必选或可选 |
必选 |
作用 |
输入数据类型 |
---|---|
类型 |
enum |
取值范围 |
|
参数说明 |
指定输入类型,当前支持图片(IMAGE)和二进制文件(BINARY)两种格式。
|
推荐配置 |
无 |
必选或可选 |
必选 |
文件头/数据 |
地址偏移 |
type |
value |
description |
---|---|---|---|---|
文件头(共20字节) |
0000 |
32bit int |
510 |
magic number 当magic number = 510,用来校验文件的合法性。 |
0004 |
32bit int |
50 |
input num |
|
0008 |
32bit int |
3 |
input channels |
|
0012 |
32bit int |
28 |
input height |
|
0016 |
32bit int |
28 |
input width |
|
数据 |
… |
float |
126 |
数据数量等于num*channels*height*width |
作用 |
输入数据地址,即校准集图片所在的路径 |
---|---|
类型 |
string |
取值范围 |
无 |
参数说明 |
指定量化输入的目录或文件。路径不要有中文、特殊字符(包括|;&$><`)以及空格。 根据实际网络的输入配置。
|
推荐配置 |
建议使用与应用场景相关的图片或二进制文件。 |
必选或可选 |
必选 |
作用 |
图像输入数据三通道排序方式 |
---|---|
类型 |
enum |
取值范围 |
|
参数说明 |
模型训练时候的图片三通道排序格式。 当input_type参数值为IMAGE时需要配置该值。该参数根据实际网络训练时候的输入通道排序方式确定,通常网络训练时候的排序方式是BGR。 |
推荐配置 |
BGR |
必选或可选 |
必选 |
作用 |
图像预处理的均值 |
---|---|
类型 |
float |
取值范围 |
[0, 255.0] |
参数说明 |
图片预处理单个通道的均值。 当input_type参数值为IMAGE时需要配置该值。多个通道需要配置多个该参数,通常图片有RGB三个通道,则需要配置三个该参数,如下:
|
推荐配置 |
无 |
必选或可选 |
必选 |
作用 |
图像预处理的均方差 |
---|---|
类型 |
float |
取值范围 |
[0,FLOAT_MAX] |
参数说明 |
图片预处理的方差。 当input_type参数值为IMAGE时需要配置该值。多个通道使用统一方差。 如果输入范围大于float型能表示的范围,模型量化精度不能保证。 如果0<=standard_deviation<=0.00001,standard_deviation取1.0。 |
推荐配置 |
1.0(图片取值区间大小不发生变化)或者255.0(对于图片区间大小为[0, 255]的场景,可将值压缩到[0, 1.0])。 |
必选或可选 |
必选 |
作用 |
数据映射直方图范围 |
---|---|
类型 |
uint32 |
取值范围 |
[0,1000] |
参数说明 |
数据直方图统计的范围。 在计算散度过程中需要统计数据直方图,该参数的值决定了直方图统计的最大值。如果不配置或者配置为0,则使用默认配置150。 |
推荐配置 |
100/150/200/250。 |
必选或可选 |
可选 |
作用 |
散度计算指标类型 |
---|---|
类型 |
enum |
取值范围 |
|
参数说明 |
不同的散度类型对应的计算方式不一样。默认为KL。 |
推荐配置 |
无 |
必选或可选 |
可选 |
作用 |
推理过程中是否使用量化后的输入数据 |
---|---|
类型 |
bool |
取值范围 |
|
参数说明 |
控制推理过程中的输入数据是否经过量化。 该参数开启,模拟了输入数据量化的过程。默认值为false。 |
推荐配置 |
false |
必选或可选 |
可选 |
作用 |
推理过程中是否使用量化后的权重数据 |
---|---|
类型 |
bool |
取值范围 |
|
参数说明 |
控制推理过程中的权重数据是否经过量化。 该参数开启,模拟了权重数据量化反量化的过程。默认值为true。 |
推荐配置 |
true |
必选或可选 |
可选 |
作用 |
搜索相关参数 |
---|---|
类型 |
Struct |
取值范围 |
无 |
参数说明 |
搜索相关参数。 super_parameter参数内部包含如下参数:
|
推荐配置 |
无 |
必选或可选 |
可选 |
作用 |
最小值搜索位置 |
---|---|
类型 |
enum |
取值范围 |
|
参数说明 |
在从小到大排序的一组数中,决定取第多少小的数,比如有100个数,1.0表示取第100-100*1.0=0,对应的就是第一个小的数。
|
推荐配置 |
PERCENTILE_HIGH |
必选或可选 |
可选 |
作用 |
最大值搜索位置 |
---|---|
类型 |
enum |
取值范围 |
|
参数说明 |
在从大到小排序的一组数中,决定取第多少大的数,比如有100个数,1.0表示取第100-100*1.0=0,对应的就是第一个大的数。
|
推荐配置 |
PERCENTILE_MID或PERCENTILE_HIGH |
必选或可选 |
可选 |
作用 |
参数说明 |
---|---|
类型 |
float |
取值范围 |
end_ratio>start_ratio>0 && step_ratio>0(如果输入范围大于float型能表示的范围,模型量化精度不能保证) |
参数说明 |
在算法中找到d_max/d_min之后,会根据此参数,取d_max/d_min前后多少范围之内的数,然后根据step_ratio决定,每次增加的步长,说明参考如下: 以d_max =100,start_ratio=0.8,end_ratio=1.2,step_ratio=0.01为例,其定义的d_max搜索空间为从100*0.8=80到100*1.2=120的范围,每次步进100*0.01=1,一共41个d_max搜索值。 |
推荐配置 |
推荐配置有两组
|
必选或可选 |
可选 |
作用 |
量化校准集图片处理的图片数量 |
---|---|
类型 |
uint32 |
取值范围 |
[0,UINT32_MAX) |
参数说明 |
决定量化的读取的校准集图片数量。 如果不配置或者配置为0,那么会把校准集所有图片都作为校准集数据。如果配置了大于0的数,那么会根据校准集路径下图片总数和该参数取较小值作为校准集的图片实际数量。建议校准集图片数量不超过500张。 |
推荐配置 |
50 |
必选或可选 |
可选 |
作用 |
量化算子黑名单 |
---|---|
类型 |
string |
取值范围 |
算子名称 |
参数说明 |
配置该参数,算子不进行量化。
|
推荐配置 |
无 |
必选或可选 |
可选 |