news 2026/5/9 12:12:46

昇腾AI模型压缩工具(AMCT)保存压缩重训练模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
昇腾AI模型压缩工具(AMCT)保存压缩重训练模型

save_compressed_retrain_model

【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

注:特性中标记“x”的产品,调用接口不会报错,但是获取不到性能收益。

功能说明

静态组合压缩接口,根据用户最终的重训练好的模型,生成最终静态组合压缩精度仿真模型以及部署模型。

函数原型

save_compressed_retrain_model(model, record_file, save_path, input_data, input_names=None, output_names=None, dynamic_axes=None)

参数说明

参数名

输入/输出

说明

model

输入

含义:已经进行静态组合压缩后的PyTorch模型。

数据类型:torch.nn.Module

record_file

输入

含义:稀疏和量化因子记录文件路径及名称。

数据类型:string

save_path

输入

含义:保存压缩模型的路径。

数据类型:string

input_data

输入

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

数据类型:tuple

input_names

输入

含义:模型的输入的名称,用于保存的量化onnx模型中显示。

默认值:None

数据类型:list(string)

output_names

输入

含义:模型的输出的名称,用于保存的量化onnx模型中显示。

默认值:None

数据类型:list(string)

dynamic_axes

输入

含义:对模型输入输出动态轴的指定,例如对于输入inputs(NCHW),N、H、W为不确定大小,输出outputs(NL),N为不确定大小,则指定形式为:

{ "inputs": [0,2,3], "outputs": [0]},其中0,2,3分别表示N,H,W所在位置的索引。

默认值:None

数据类型:dict<string, dict<python:int, string>> or dict<string, list(int)>

返回值说明

约束说明

若模型只做了稀疏(没有做量化),则通过该接口生成的两个文件为直接使用PyTorch导出的onnx文件,文件内容一致,文件名称分别包括deploy和fake_quant关键字。

调用示例

import amct_pytorch as amct # 建立待压缩的网络图结构 model = build_model() # create compressed model #训练retrain模型,训练量化因子 train(compressed_retrain_model) infer(compressed_retrain_model) input_data = tuple([torch.randn(input_shape)]) save_path = os.path.join(OUTPUTS_DIR, 'custom_name') record_file = os.path.join(TMP, 'compressed_record.txt') #插入保存组合压缩模型的API,转换成ONNX文件 amct.save_compressed_retrain_model( compressed_retrain_model, record_file, save_path, input_data, input_names=['input'], output_names=['output'], dynamic_axes={'input':{0:'batch_size'}, 'output':{0:'batch_size'}})

落盘文件说明:

  • 精度仿真模型文件:ONNX格式的模型文件,模型名中包含fake_quant,可以在ONNX Runtime环境进行精度仿真。

  • 部署模型文件:ONNX格式的模型文件,模型名中包含deploy,经过ATC转换工具转换后可部署到AI处理器。

  • (可选)*.external文件,包括*deploy.external和*fakequant.external:

    只有保存的精度仿真模型以及部署模型文件大小>=2GB才会生成该类文件,且与压缩后的*.onnx模型文件生成在同级目录,用于保存Tensor中的数据,每个Tensor数据单独保存一份*.external文件,文件名与Tensor相同,例如_conv1.weight__deploy.external和_conv1.weight__fakequant.external。

    后续通过ATC工具加载压缩后的*.onnx部署模型文件进行模型转换时,会自动读取同级目录下*.external文件中的Tensor数据。

重新执行静态组合压缩时,该接口输出的上述文件将会被覆盖。

【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 12:11:51

CANN/opbase设置输出张量地址API

aclSetOutputTensorAddr 【免费下载链接】opbase 本项目是CANN算子库的基础框架库&#xff0c;为算子提供公共依赖文件和基础调度能力。 项目地址: https://gitcode.com/cann/opbase 功能说明 通过aclSetAclOpExecutorRepeatable使能aclOpExecutor可复用后&#xff0c;…

作者头像 李华
网站建设 2026/5/9 12:08:31

CANN/cannbot-skills工具编写指南

Tool Authoring Playbook 【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体&#xff0c;本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills Use this playbook when adding or modifyin…

作者头像 李华
网站建设 2026/5/9 12:04:31

CANN/ops-nn LogSigmoid梯度算子

LogSigmoidGrad 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产…

作者头像 李华
网站建设 2026/5/9 12:03:30

CANN/cannbot-skills Attention-Only模板

Attention-Only Scope 模板 【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体&#xff0c;本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills 本模板提供仅将 Attention 模块纳入 Super…

作者头像 李华
网站建设 2026/5/9 12:00:32

指针学习笔记

一、指针的定义1.本质指针&#xff0c;就是存储地址值的变量。&#xff08;我们设计一个地址类型的变量&#xff0c;用来存放其他变量的内存地址&#xff09;2.指针的大小1.指针占多少字节取决于CPU架构&#xff1a;x86架构&#xff08;32位&#xff09;&#xff1a;指针大小为…

作者头像 李华
网站建设 2026/5/9 11:58:33

无车位线智能车辆泊车路径规划与跟踪控制方法【附仿真】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;可以私信&#xff0c;或者点击《获取方式》 &#xff08;1&#xff09;自适应椭圆采样域与势场引…

作者头像 李华