create_quant_retrain_config
产品支持情况
产品 |
是否支持 |
---|---|
x |
|
x |
|
x |
|
√ |
功能说明
量化感知训练接口,根据图的结构找到所有可量化感知训练的层,自动生成量化感知训练配置文件,并将可量化层的配置信息写入配置文件。
函数原型
1 | create_quant_retrain_config(config_file, network, *input_data, config_defination=None) |
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
config_file |
输入 |
含义:待生成的量化感知训练配置文件存放路径及名称。 如果存放路径下已经存在该文件,则调用该接口时会覆盖已有文件。 数据类型:string |
network |
输入 |
含义:需要进行量化感知训练的MindSpore原始网络。 数据类型:MindSpore的Cell对象 |
input_data |
输入 |
含义:用户网络输入数据(仅要求数据的format和shape正确,数据本身可以是随机生成的),用于图编译。 数据类型:可以转化为MindSpore Tensor的对象,比如numpy.ndarray对象。 该参数为可变参数,支持用户网络有多个输入的情况。 |
config_defination |
输入 |
含义:基于retrain_config_mindspore.proto文件生成的简易配置文件quant.cfg, *.proto文件所在路径为:AMCT安装目录/amct_mindspore/proto/。*.proto文件参数解释以及生成的quant.cfg简易量化配置文件样例请参见量化感知训练简易配置文件。 默认值:None 数据类型:string |
返回值说明
无
调用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import amct_mindspore as amct import numpy as np network = resnet(10) network.set_train(True) ckpt_path = os.path.join(CUR_DIR, './ckpt/resnet50.ckpt') param_dict =load_checkpoint(ckpt_path) load_param_into_net(network, param_dict) input_data = np.random.uniform(0.0, 1.0, size=[32, 3, 224, 224]).astype(np.float32) config_file = os.path.join(CUR_DIR, './retrain_quant_config.json') amct.create_quant_retrain_config(config_file, network, 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 | { "version":1, "conv1":{ "retrain_enable":true, "retrain_data_config":{ "algo":"ulq_quantize" }, "retrain_weight_config":{ "algo":"arq_retrain", "channel_wise":true } }, "layer1.0.down_sample_layer.0":{ "retrain_enable":true, "retrain_data_config":{ "algo":"ulq_quantize" }, "retrain_weight_config":{ "algo":"arq_retrain", "channel_wise":true } }, ... } |
父主题: 量化感知训练接口