当前位置: 首页 > news >正文

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)

参数说明

参数名

输入/输出

说明

config_file

输入

含义:待生成的量化配置文件存放路径及名称。如果存放路径下已经存在该文件,则调用该接口时会覆盖已有文件。

数据类型:string

model

输入

含义:待量化的模型,已加载权重。

数据类型:torch.nn.Module

input_data

输入

含义:模型的输入数据。一个torch.tensor会被等价为tuple(torch.tensor)。

数据类型:tuple

skip_layers

输入

含义:可量化但不需要量化的层名。

默认值:None

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

使用约束:如果使用简易配置文件作为入参,则该参数需要在简易配置文件中设置,此时输入参数中该参数配置不生效。

batch_num

输入

含义:量化使用的batch数量,即使用多少个batch的数据生成量化因子。

数据类型:int

取值范围:大于0的整数,默认值为1。

使用约束:

  • batch_num不宜过大,batch_num与batch_size的乘积为量化过程中使用的图片数量,过多的图片会占用较大的内存。
  • 如果使用简易配置文件作为入参,则该参数需要在简易配置文件中设置,此时输入参数中该参数配置不生效。

activation_offset

输入

含义:数据量化是否带offset。

默认值:True

数据类型:bool

使用约束:如果使用简易配置文件作为入参,则该参数需要在简易配置文件中设置,此时输入参数中该参数配置不生效。

config_defination

输入

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

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

默认值:None

数据类型:string

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

训练后量化支持的层及约束

支持的层类型

约束

备注

torch.nn.Linear

-

复用层(共用weight和bias参数)不支持量化。

torch.nn.Conv2d

  • padding_mode为zeros
  • 只支持input data的shape为(N, Cin, Hin, Win)

torch.nn.Conv3d

  • dilation_d为1,dilation_h/dilation_w >= 1
  • 只支持input data的shape为(N, Cin, Din, Hin, Win)

torch.nn.ConvTranspose2d

  • padding_mode为zeros
  • 只支持input data的shape为(N, Cin, Hin, Win)

torch.nn.AvgPool2d

-

-

量化均衡预处理支持的层及约束

支持的层类型

约束

备注

torch.nn.Linear

-

复用层(共用weight和bias参数)不支持量化。

torch.nn.Conv2d

padding_mode为zeros

torch.nn.Conv3d

dilation_d为1,dilation_h/dilation_w >= 1

padding_mode为zeros

torch.nn.ConvTranspose2d

padding_mode为zeros

返回值说明

调用示例

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),仅供参考

http://www.jsqmd.com/news/782652/

相关文章:

  • Zeta电位分析仪选购指南:哪个品牌质量好?哪家公司最靠谱? - 品牌推荐大师
  • 科学绘图软件Origin下载与安装教程(详细教程,附安装包) 2025最新版详细图文安装教程
  • Clawdbot本地模型工具调用补丁:解决AI助手与本地推理服务器握手问题
  • 500元以内头戴式耳机推荐哪款?百元性价比最高的十款头戴式耳机
  • 3步搞定微信聊天记录永久备份:开源神器WeChatExporter终极指南
  • XHS-Downloader终极教程:3分钟掌握小红书无水印批量下载
  • 顶会论文模块复现与二次创新:NeurIPS 2026 前沿:将 Retentive Network 的保留机制引入主干,实现低成本长程建模
  • 30岁,转行网络安全,是这辈子最成功的一件事...... - 副本
  • 全域矩阵运营系统分布式任务调度架构设计与工程化落地
  • OpenClaw:不止聊天,能动手执行的开源 AI 智能体
  • 2026建筑防护材料选购指南:五大关键品类实力厂家深度解析 - 深度智识库
  • ncmdumpGUI:三分钟解锁网易云加密音乐,让你的音乐库真正自由
  • CANN/ge 流分配约束文档
  • 2026年全网10个免费降AI率工具深度测评:言笔/DeepSeek谁更强?一键降AI率必备工具 - 降AI实验室
  • 四川耐磨钢板・耐候钢板市场深度解析 - 深度智识库
  • 点餐外卖小程序源码如何降低平台开发成本与运营压力
  • CANN ops-nn ELU梯度算子
  • #24 Agent 的浏览器自动化:Playwright、Selenium 与网页交互
  • 既要又要还要?噬菌体展示如何帮助科学家“钓”出完美的抗毒素抗体?
  • 智慧云柜生产厂家推荐-聚澜智能 - 聚澜智能
  • 初次使用大模型API的新手如何通过模型广场快速选择合适的模型
  • 领嵌iLeadE-588AI计算盒子数据采集视频分析一键部署
  • 2026年唐山幕墙清洗与烟道保洁专业服务商深度对标指南 - 企业名录优选推荐
  • 小红书内容采集终极指南:XHS-Downloader 5分钟快速上手
  • 【Pocket Flow】源码剖析(二):批量与异步——BatchNode、AsyncNode 与并行执行
  • 2025-2026年国内主流电竞鼠标品牌推荐:十大口碑产品评测日常使用防握持不适 - 品牌推荐
  • 桶排序、堆排序、奇偶排序、计数排序、阿坤老师的独特瓷器、封闭图形个数、二进制王国【算法赛】
  • Python 爬虫反爬突破:人机验证机制底层破解
  • CANN/sip BLAS向量复制操作
  • cann/ascend-transformer-boost编译与构建