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

参数配置说明

表1 device参数说明

作用

推理模式

类型

enum

取值范围

USE_CPU

参数说明

USE_CPU:使用CPU做推理。

推荐配置

USE_CPU

必选或可选

必选

表2 quantize_algo参数说明

作用

量化模式

类型

enum

取值范围

  • NON_OFFSET
  • HALF_OFFSET

参数说明

  • NON_OFFSET:权重和数据都采用无偏移模式
  • HALF_OFFSET:数据采用有偏移模式,权重采用无偏移模式

根据权重和数据在量化时是否有偏移,量化的映射公式有两种:

  • 有偏移,公式为:q_uint8 = round(d_float/scale)-offset
  • 无偏移,公式为:q_int8 = round(d_float/scale)

推荐配置

HALF_OFFSET

必选或可选

必选

表3 weight_type参数说明

作用

权重量化模式

类型

enum

取值范围

  • VECTOR_TYPE
  • SCALAR_TYPE

参数说明

对于卷积算子,可能有多个卷积核,多个对应的量化参数可能不一样。

  • VECTOR_TYPE:表示一个卷积核对应一组量化参数
  • SCALAR_TYPE:表示多个卷积核使用同一组量化参数

推荐配置

VECTOR_TYPE

必选或可选

必选

表4 preprocess_parameter参数说明

作用

预处理及输入相关参数

类型

Struct

取值范围

无。

参数说明

指定预处理及输入相关参数。preprocess_parameter参数的数量与网络的输入算子数量必须相同。

在preprocess_parameter内部包含如下参数:

  • input_type
  • image_format
  • input_file_path
  • mean_value
  • standard_deviation

推荐配置

必选或可选

必选

表5 input_type参数说明

作用

输入数据类型

类型

enum

取值范围

  • IMAGE
  • BINARY

参数说明

指定输入类型,当前支持图片(IMAGE)和二进制文件(BINARY)两种格式。
  • IMAGE:图片格式。

    支持的图片格式包括:".bmp", ".dib", ".jpeg", ".jpg", ".jpe", ".jp2", ".png", ".webp",".pbm", ".pgm", ".ppm", ".sr", ".ras", ".tiff", ".tif",".BMP", ".DIB", ".JPEG", ".JPG", ".JPE", ".JP2", ".PNG", ".WEBP",".PBM", ".PGM", ".PPM", ".SR", ".RAS", ".TIFF", ".TIF"。

  • BINARY:二进制文件(Binary格式)格式,请参见表6。对于非四维(num、channels、height、width)的数据,需要补齐到四维,补齐的维度值为1。

推荐配置

必选或可选

必选

表6 二进制文件格式

文件头/数据

地址偏移

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

表7 input_file_path参数说明

作用

输入数据地址,即校准集图片所在的路径

类型

string

取值范围

参数说明

指定量化输入的目录或文件。路径不要有中文、特殊字符(包括|;&$><`)以及空格。

根据实际网络的输入配置。

  • 如果是图片,指定到目录
  • 如果是二进制文件,指定到文件

推荐配置

建议使用与应用场景相关的图片或二进制文件。

必选或可选

必选

表8 image_format参数说明

作用

图像输入数据三通道排序方式

类型

enum

取值范围

  • BGR
  • RGB

参数说明

模型训练时候的图片三通道排序格式。

当input_type参数值为IMAGE时需要配置该值。该参数根据实际网络训练时候的输入通道排序方式确定,通常网络训练时候的排序方式是BGR。

推荐配置

BGR

必选或可选

必选

表9 mean_value参数说明

作用

图像预处理的均值

类型

float

取值范围

[0, 255.0]

参数说明

图片预处理单个通道的均值。

当input_type参数值为IMAGE时需要配置该值。多个通道需要配置多个该参数,通常图片有RGB三个通道,则需要配置三个该参数,如下:

  • mean_value:104.0
  • mean_value:117.0
  • mean_value:123.0

推荐配置

必选或可选

必选

表10 standard_deviation参数说明

作用

图像预处理的均方差

类型

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])。

必选或可选

必选

表11 bin参数说明

作用

数据映射直方图范围

类型

uint32

取值范围

[0,1000]

参数说明

数据直方图统计的范围。

在计算散度过程中需要统计数据直方图,该参数的值决定了直方图统计的最大值。如果不配置或者配置为0,则使用默认配置150

推荐配置

100/150/200/250。

必选或可选

可选

表12 type参数说明

作用

散度计算指标类型

类型

enum

取值范围

  • KL
  • SYMKL
  • JSD

参数说明

  • KLKullback-Leibler Divergence
  • SYMKL:Symmetric Kullback-Leibler Divergence
  • JSDJensen-Shannon Divergence

不同的散度类型对应的计算方式不一样。默认为KL

推荐配置

必选或可选

可选

表13 inference_with_data_quantized参数说明

作用

推理过程中是否使用量化后的输入数据

类型

bool

取值范围

  • true
  • false

参数说明

控制推理过程中的输入数据是否经过量化。

该参数开启,模拟了输入数据量化的过程。默认值为false

推荐配置

false

必选或可选

可选

表14 inference_with_weight_quantized参数说明

作用

推理过程中是否使用量化后的权重数据

类型

bool

取值范围

  • true
  • false

参数说明

控制推理过程中的权重数据是否经过量化。

该参数开启,模拟了权重数据量化反量化的过程。默认值为true

推荐配置

true

必选或可选

可选

表15 super_parameter参数说明

作用

搜索相关参数

类型

Struct

取值范围

参数说明

搜索相关参数。

super_parameter参数内部包含如下参数:

  • min_percentile
  • max_percentile
  • start_ratio
  • end_ratio
  • step_ratio

推荐配置

必选或可选

可选

表16 min_percentile参数说明

作用

最小值搜索位置

类型

enum

取值范围

  • PERCENTILE_HIGH
  • PERCENTILE_MID
  • PERCENTILE_LOW

参数说明

在从小到大排序的一组数中,决定取第多少小的数,比如有100个数,1.0表示取第100-100*1.0=0,对应的就是第一个小的数。

  • PERCENTILE_HIGH1.0
  • PERCENTILE_MID0.99999
  • PERCENTILE_LOW0.9999

推荐配置

PERCENTILE_HIGH

必选或可选

可选

表17 max_percentile参数说明

作用

最大值搜索位置

类型

enum

取值范围

  • PERCENTILE_HIGH
  • PERCENTILE_MID
  • PERCENTILE_LOW

参数说明

在从大到小排序的一组数中,决定取第多少大的数,比如有100个数,1.0表示取第100-100*1.0=0,对应的就是第一个大的数。

  • PERCENTILE_HIGH1.0
  • PERCENTILE_MID0.99999
  • PERCENTILE_LOW0.9999

推荐配置

PERCENTILE_MIDPERCENTILE_HIGH

必选或可选

可选

表18 start_ratio、end_ratio、step_ratio参数说明

作用

参数说明

类型

float

取值范围

end_ratio>start_ratio>0 && step_ratio>0(如果输入范围大于float型能表示的范围,模型量化精度不能保证)

参数说明

  • start_ratio:决定搜索开始的位置
  • end_ratio:决定搜索结束的位置
  • step_ratio:决定搜索步长

在算法中找到d_max/d_min之后,会根据此参数,取d_max/d_min前后多少范围之内的数,然后根据step_ratio决定,每次增加的步长,说明参考如下:

d_max =100start_ratio=0.8end_ratio=1.2step_ratio=0.01为例,其定义的d_max搜索空间为从100*0.8=80100*1.2=120的范围,每次步进100*0.01=1,一共41d_max搜索值。

推荐配置

推荐配置有两组

  • start_ratio:0.7 end_ratio:1.3 step_ratio:0.01
  • start_ratio:0.3 end_ratio:1.7 step_ratio:0.01

必选或可选

可选

表19 batch_count参数说明

作用

量化校准集图片处理的图片数量

类型

uint32

取值范围

[0,UINT32_MAX)

参数说明

决定量化的读取的校准集图片数量。

如果不配置或者配置为0,那么会把校准集所有图片都作为校准集数据。如果配置了大于0的数,那么会根据校准集路径下图片总数和该参数取较小值作为校准集的图片实际数量。建议校准集图片数量不超过500张。

推荐配置

50

必选或可选

可选

表20 exclude_op参数说明

作用

量化算子黑名单

类型

string

取值范围

算子名称

参数说明

配置该参数,算子不进行量化

  • 只支持Convolution、Full Connection、ConvolutionDepthwise算子;
  • 多个算子,需要配置多个该参数,每个参数一行,如:

    exclude_op:'aaa'

    exclude_op:'bbb'

推荐配置

必选或可选

可选

分享:

    相关文档

    相关产品