下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

配置文件及参数说明

量化配置文件

如果通过create_quant_config接口生成的config.json量化配置文件,推理精度不满足要求,则需要参见该章节不断调整config.json文件中的内容,直至精度满足要求,该文件部分内容样例如下:

  • 均匀量化配置文件(数据量化使用IFMR数据量化算法
    {
        "version":1,
        "batch_num":2,
        "activation_offset":true,
        "joint_quant":false,
        "do_fusion":true,
        "skip_fusion_layers":[],
        "tensor_quantize":[
          {
             "layer_name": "maxpool_ld_default",
             "input_index":0,
             "activation_quant_params":{
                 "num_bits":8,
                 "max_percentile":0.999999,
                 "min_percentile":0.999999,
                 "search_range":[
                     0.7,
                    1.3
                 ],
                 "search_step":0.01
                 "act_algo":"ifmr"
                 "asymmetric":false
              }
           }
        },
        "layer_name1":{
            "quant_enable":true,
            "dmq_balancer_param":0.5,
            "activation_quant_params":{
                "num_bits":8,
                "max_percentile":0.999999,
                "min_percentile":0.999999,
                "search_range":[
                    0.7,
                    1.3
                ],
                "search_step":0.01
                "act_algo":"ifmr"
                "asymmetric":false
            },
            "weight_quant_params":{
                "num_bits":8,
                "wts_algo":"arq_quantize",
                "channel_wise":true
            }
        },
        "layer_name2":{
            "quant_enable":true,
            "dmq_balancer_param":0.5,
            "activation_quant_params":{
                "num_bits":8,
                "max_percentile":0.999999,
                "min_percentile":0.999999,
                "search_range":[
                    0.7,
                    1.3
                ],
                "search_step":0.01
                "act_algo":"ifmr"
                "asymmetric":false
            },
            "weight_quant_params":{
                "num_bits":8,
                "wts_algo":"arq_quantize",
                "channel_wise":false
            }
        }
    }
  • 均匀量化配置文件(数据量化使用HFMG数据量化算法
    {
        "version":1,
        "batch_num":2,
        "activation_offset":true,
        "do_fusion":true,
        "skip_fusion_layers":[],
        "tensor_quantize":[
          {
             "layer_name": "maxpool_ld_default",
             "input_index":0,
             "activation_quant_params":{
                 "num_bits":8,
                 "max_percentile":0.999999,
                 "min_percentile":0.999999,
                 "search_range":[
                     0.7,
                    1.3
                 ],
                 "search_step":0.01
                 "act_algo":"hfmg"
                 "asymmetric":false
              }
           }
        },
        "layer_name1":{
            "quant_enable":true,
            "dmq_balancer_param":0.5,
            "activation_quant_params":{
                "num_bits":8,
                "act_algo":"hfmg",
                "num_of_bins":4096
                "asymmetric":false
            },
            "weight_quant_params":{
                "num_bits":8,
                "wts_algo":"arq_quantize",
                "channel_wise":true
            }
        }
    }

参数说明

配置文件中参数说明如下:

表1 version参数说明

作用

控制量化配置文件版本号

类型

int

取值范围

1

参数说明

目前仅有一个版本号1。

推荐配置

1

可选或者必选

可选

表2 batch_num参数说明

作用

控制量化使用多少个batch的数据。

类型

int

取值范围

大于0

参数说明

如果不配置,则使用默认值1,建议校准集图片数量不超过50张,根据batch的大小batch_size计算相应的batch_num数值。

batch_num*batch_size为量化使用的校准集图片数量。

其中batch_size为每个batch所用的图片数量。

推荐配置

1

必选或可选

可选

表3 activation_offset参数说明

作用

控制数据量化是对称量化还是非对称量化。全局配置参数。

若配置文件中同时存在activation_offset和asymmetric参数,asymmetric参数优先级>activation_offset参数。

类型

bool

取值范围

true或false

参数说明

  • true:数据量化时为非对称量化。
  • false:数据量化时为对称量化。

推荐配置

true

必选或可选

可选

表4 joint_quant参数说明

作用

是否进行Eltwise联合量化。

类型

bool

取值范围

true或false

参数说明

  • true:进行Eltwise联合量化。
  • false:关闭联合量化功能。

推荐配置

false

必选或可选

可选

表5 do_fusion参数说明

作用

是否开启融合功能。

类型

bool

取值范围

true或false

参数说明

  • true:开启融合功能。
  • false:不开启融合功能。

当前仅支持Conv+BN融合。

推荐配置

true

可选或必选

可选

表6 skip_fusion_layers参数说明

作用

跳过可融合的层。

类型

string

取值范围

可融合层的层名。当前仅支持Conv+BN融合。

参数说明

不需要做融合的层。

推荐配置

-

可选或必选

可选

表7 layer_config参数说明

作用

指定某个网络层的量化配置。

类型

object

取值范围

-

参数说明

参数内部包含如下参数:

  • quant_enable
  • activation_quant_params
  • weight_quant_params

推荐配置

-

必选或可选

可选

表8 quant_enable参数说明

作用

该层是否做量化。

类型

bool

取值范围

true或false

参数说明

  • true:量化该层。
  • false:不量化该层。

推荐配置

true

必选或可选

可选

表9 dmq_balancer_param参数说明

作用

DMQ均衡算法中的迁移强度。

类型

float

取值范围

[0.2, 0.8]

参数说明

代表将activation数据上的量化难度迁移至weight权重的程度,数据分布的离群值越大迁移强度应设置较小。

推荐配置

0.5

必选或可选

可选

表10 activation_quant_params参数说明

作用

该层数据量化的参数。

类型

object

取值范围

-

参数说明

activation_quant_params内部包含如下参数,IFMR算法相关参数与HFMG算法相关参数在同一层中不能同时出现:

  • IFMR数据量化算法涉及参数:
    • max_percentile
    • min_percentile
    • search_range
    • search_step
    • act_algo
    • num_bits
    • asymmetric
  • HFMG数据量化算法涉及参数:
    • act_algo
    • num_of_bins
    • num_bits
    • asymmetric

推荐配置

-

必选或可选

可选

表11 weight_quant_params参数说明

作用

该层权重量化的参数。

类型

object

取值范围

-

参数说明

  • 均匀量化场景,包括如下参数:
    • num_bits
    • wts_algo
    • channel_wise

推荐配置

-

必选或可选

可选

表12 num_bits参数说明

作用

量化位宽。

类型

int

取值范围

8

参数说明

当前仅支持配置为8,表示采用INT8量化位宽

推荐配置

-

必选或可选

必选

表13 act_algo参数说明

作用

数据量化算法。

类型

string

取值范围

ifmr或者hfmg

参数说明

IFMR数据量化算法:ifmr

HFMG数据量化算法:hfmg

推荐配置

-

必选或可选

可选

表14 asymmetric参数说明

作用

控制数据量化是对称量化还是非对称量化。用于控制逐层量化算法的选择。

若配置文件中同时存在activation_offset和asymmetric参数,asymmetric参数优先级>activation_offset参数。

类型

bool

取值范围

true或false

参数说明

  • true:数据量化时为非对称量化。
  • false:数据量化时为对称量化。

推荐配置

true

必选或可选

可选

表15 max_percentile参数说明

作用

IFMR数据量化算法中,最大值搜索位置参数。

类型

float

取值范围

(0.5,1]

参数说明

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

对待量化的数据做截断处理时,该值越大,说明截断的上边界越接近待量化数据的最大值。

推荐配置

0.999999

必选或可选

可选

表16 min_percentile参数说明

作用

IFMR数据量化算法中,最小值搜索位置参数。

类型

float

取值范围

(0.5,1]

参数说明

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

对待量化的数据做截断处理时,该值越大,说明截断的下边界越接近待量化数据的最小值。

推荐配置

0.999999

必选或可选

可选

表17 search_range参数说明

作用

IFMR数据量化算法中,控制量化因子的搜索范围[search_range_start, search_range_end]。

类型

list,列表中两个元素类型为float。

取值范围

0<search_range_start<search_range_end

参数说明

控制截断的上边界的浮动范围。

  • search_range_start:决定搜索开始的位置。
  • search_range_end:决定搜索结束的位置。

推荐配置

[0.7,1.3]

必选或可选

可选

表18 search_step参数说明

作用

IFMR数据量化算法中,控制量化因子的搜索步长。

类型

float

取值范围

(0, (search_range_end-search_range_start)]

参数说明

控制截断的上边界的浮动范围步长,值越小,浮动步长越小。

推荐配置

0.01

必选或可选

可选

表19 num_of_bins参数说明

作用

HFMG数据量化算法用于调整直方图的bin(直方图中的一个最小单位直方图形)数目。

类型

unsigned int

取值范围

{1024, 2048, 4096, 8192}

参数说明

num_of_bins数值越大,直方图拟合原始数据分布的能力越强,可能获得更佳的量化效果,但训练后量化过程的耗时也会更长。

推荐配置

4096

必选或可选

HFMG算法量化场景下,该参数可选。

表20 wts_algo参数说明

作用

权重量化算法

类型

string

取值范围

arq_quantize

参数说明

ARQ权重量化算法:arq_quantize

推荐配置

-

必选或可选

可选

表21 channel_wise搜索相关参数说明

作用

ARQ权重量化算法中,是否对每个channel采用不同的量化因子。

类型

bool

取值范围

true或false

参数说明

  • true:每个channel独立量化,量化因子不同。
  • false:所有channel同时量化,共享量化因子。

推荐配置

true

必选或可选

可选

表22 tensor_quantize参数说明

作用

指定某个网络层的量化配置。

类型

object

取值范围

-

参数说明

参数内部包含如下参数:

  • layer_name
  • input_index
  • activation_quant_params

推荐配置

-

必选或可选

可选

表23 layer_name参数说明

作用

需要对节点输入Tensor进行训练后量化的节点名称。

类型

string

取值范围

-

参数说明

当前仅支持对MaxPool算子的输入Tensor进行量化。

推荐配置

-

必选或可选

必选

表24 input_index参数说明

作用

需要对节点输入Tensor进行训练后量化的节点的输入索引。

类型

uint32

取值范围

-

参数说明

节点的输入索引。

推荐配置

-

必选或可选

必选

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词