CANN/AMCT 创建量化配置
create_quant_config
【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
功能说明
训练后量化接口,根据图的结构找到所有可量化的层,自动生成量化配置文件,并将可量化层的量化配置信息写入文件。
函数原型
create_quant_config(config_file, model, input_data, skip_layers=None, batch_num=1, activation_offset=True, config_defination=None)参数说明
训练后量化支持的层及约束
| ||
| ||
| ||
量化均衡预处理支持的层及约束
返回值说明
无
调用示例
import amct_pytorch as amct # 建立待量化的网络图结构 model = build_model() model.load_state_dict(torch.load(state_dict_path)) input_data = tuple([torch.randn(input_shape)]) model.eval() # 生成量化配置文件 amct.create_quant_config(config_file="./configs/config.json", model=model, input_data=input_data, skip_layers=None, batch_num=1, activation_offset=True)落盘文件说明:生成JSON格式的量化配置文件,样例如下(重新执行量化时,该接口生成的量化配置文件将会被覆盖),参数解释请参见训练后量化配置参数.
训练后量化配置文件(数据量化使用IFMR数据量化算法)
{ "version":1, "batch_num":2, "activation_offset":true, "do_fusion":true, "skip_fusion_layers":[], "conv1":{ "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 } }, "fc":{ "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":[], "conv1":{ "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 } } }自适应舍入量化简易配置文件(权重量化使用ADA权重量化算法)
"layer_name1":{ "quant_enable":true, "weight_quant_params":{ "wts_algo":"ada_quantize", "num_iteration":10000, "reg_param":0.1, "beta_range":[20,2], "warm_start":0.2, "num_bits":8, "channel_wise":true } }
【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
