create_quant_retrain_config
产品支持情况
功能说明
量化感知训练接口,根据图的结构找到所有可量化的层,自动生成量化配置文件,并将可量化层的量化配置信息写入配置文件。
函数原型
create_quant_retrain_config(config_file, model, input_data, config_defination=None)
参数说明
|
基于retrain_config_pytorch.proto文件生成的简易配置文件quant.cfg,*.proto文件所在路径为:AMCT安装目录/amct_pytorch/proto/。*.proto文件参数解释以及生成的quant.cfg简易量化配置文件样例请参见量化感知训练简易配置文件。 |
量化支持的层及约束
返回值说明
无
调用示例
import amct_pytorch as amct
# 建立待量化的网络图结构
model = build_model()
model.load_state_dict(torch.load(state_dict_path))
input_data = tuple([torch.randn(input_shape)])
# 生成量化配置文件
amct.create_quant_retrain_config(config_file="./configs/config.json",
model=model,
input_data=input_data)
落盘文件说明:生成JSON格式的量化感知训练配置文件,样例如下(重新执行量化感知训练时,该接口输出的配置文件将会被覆盖),参数解释请参见量化感知训练配置参数。
{
"version":1,
"batch_num":1,
"conv1":{
"retrain_enable":true,
"retrain_data_config":{
"algo":"ulq_quantize",
"dst_type":"INT8"
},
"retrain_weight_config":{
"algo":"arq_retrain",
"channel_wise":true,
"dst_type":"INT8"
}
},
"layer1.0.conv1":{
"retrain_enable":true,
"retrain_data_config":{
"algo":"ulq_quantize",
"dst_type":"INT8"
},
"retrain_weight_config":{
"algo":"arq_retrain",
"channel_wise":true,
"dst_type":"INT8"
}
},
"fc":{
"retrain_enable":true,
"retrain_data_config":{
"algo":"ulq_quantize",
"dst_type":"INT8"
},
"retrain_weight_config":{
"algo":"arq_retrain",
"channel_wise":false,
"dst_type":"INT8"
}
}
}