文档
注册

create_quant_config

功能说明

训练后量化接口,根据图的结构找到所有可量化的层,自动生成量化配置文件,并将可量化层的量化配置信息写入量化配置文件。

约束说明

由于数据格式转换,生成的量化配置文件中与简单配置文件中的量化参数,数值上不完全一致,但不影响精度。

函数原型

create_quant_config(config_file, network, *input_data, skip_layers=None, activation_offset=True, config_defination=None)

参数说明

参数名

输入/返回值

含义

使用限制

config_file

输入

待生成的量化配置文件存放路径及名称。

如果存放路径下已经存在该文件,则调用该接口时会覆盖已有文件。

数据类型:string

network

输入

MindSpore中的网络模型定义。

数据类型:MindSpore的Cell对象

input_data

输入

用户网络输入数据(仅要求数据的format和shape正确,数据本身可以是随机生成的)

数据类型:可以转化为MindSpore Tensor的对象,比如numpy.ndarray对象。

该参数是一个可变参数,支持用户网络有多个输入的场景

skip_layers

输入

可量化但不需要量化的层的层名。

默认值:None

数据类型:list,列表中元素类型为string

使用约束:

  • 关键字参数,因为前面的input_data是可变参数,如果使用该参数,需指明参数的关键字
  • 如果使用简易配置文件作为入参,则该参数需要在简易配置文件中设置,此时输入参数中该参数配置不生效。

activation_offset

输入

数据量化是否带offset。

默认值:True

数据类型:bool

使用约束:

  • 关键字参数,因为前面的input_data是可变参数,如果使用该参数,需指明参数的关键字
  • 如果使用简易配置文件作为入参,则该参数需要在简易配置文件中设置,此时输入参数中该参数配置不生效。

config_defination

输入

基于calibration_config_mindspore.proto文件生成的简易量化配置文件quant.cfg,calibration_config_mindspore.proto文件所在路径为:AMCT安装目录/amct_mindspore/proto/calibration_config_mindspore.proto。

calibration_config_mindspore.proto文件参数解释以及生成的quant.cfg简易量化配置文件样例请参见训练后量化简易配置文件

默认值:None

数据类型:string

使用约束:当取值为None时,使用输入参数生成配置文件;否则,忽略输入的其他量化参数(skip_layers,activation_offset),根据简易量化配置文件参数config_defination生成json格式的配置文件。

关键字参数,因为前面的input_data是可变参数,如果使用该参数,需指明参数的关键字。

返回值说明

无。

函数输出

输出一个json格式的量化配置文件(重新执行量化时,该接口输出的量化配置文件将会被覆盖)。
 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
{
    "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
        }
    }
}

调用示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from amct_mindspore import create_quant_config
# 通过参数来生成量化配置文件
input_data = np.random.uniform(0.0, 1.0, size=[32, 1, 32, 32]).astype(np.float32)
create_quant_config("./configs/config.json",
                    network,
                    input_data,
                    skip_layers=None,
                    activation_offset=True)
# 通过简易配置文件来生成量化配置文件
create_quant_config("./configs/config.json",
                    network,
                    input_data,
                    config_defination="./configs/quant.cfg")
搜索结果
找到“0”个结果

当前产品无相关内容

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