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

CANN/amct蒸馏模型保存接口

save_distill_model

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

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

蒸馏接口,根据用户最终的蒸馏好的模型,生成最终量化精度仿真模型以及量化部署模型。

函数原型

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

参数说明

参数名

输入/输出

说明

model

输入

含义:已进行蒸馏后的量化模型。

数据类型:torch.nn.Module

save_path

输入

含义:蒸馏后的量化模型存放路径。该路径需要包含模型名前缀,例如./quantized_model/*model。

数据类型:string

input_data

输入

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

数据类型:tuple

record_file

输入

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

默认值:None

数据类型:string

使用约束:传入值为None的情况下量化因子记录文件存放在amct_log文件夹中。

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)>

返回值说明

调用示例

import amct_pytorch as amct # 建立待进行蒸馏量化的网络图结构 model = build_model() model.load_state_dict(torch.load(state_dict_path)) input_data = tuple([torch.randn(input_shape)]) # 插入蒸馏API,将蒸馏的模型存为onnx文件 amct.save_distill_model( model, "./model/distilled", input_data, record_file="./results/records.txt", 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处理器。

重新执行蒸馏时,该接口输出的上述文件将会被覆盖。

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

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

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

相关文章:

  • 基于AI Agent与n8n的ChatOps桌面应用:构建智能运维指挥中心
  • DaVinci系统ARM+DSP双核内存优化实战
  • 基于Tauri与React构建AI编码代理实时监控桌面应用
  • 2026 年四川钢材行业优质企业综合实力榜单 - 四川盛世钢联营销中心
  • CANN/ops-transformer Floyd注意力梯度算子
  • PaperBanana:基于多智能体流程的AI科研绘图工具实战指南
  • 基于Dialoqbase快速构建私有化RAG问答系统:部署、配置与调优实战
  • Cursor规则转智能体配置:从.cursorrules到AI助手的自动化实践
  • 小红书自动化发布工具技术解析:从Appium到风控规避
  • Python量化交易框架实战:从事件驱动架构到策略回测全解析
  • 《ClawHub私有化部署核心架构解析:从服务器选型到上线运维》
  • AI开发工具社区情感分析:基于Reddit、Hacker News和GitHub的舆情监测
  • CANN npugraph_ex图模式优化
  • 基于Vue.js与Node.js构建开源知识库:从部署到二次开发全解析
  • [具身智能-609]:PWM 波形示意图 + 各类型电机标准频率 / 参数配置(可直接照搬编程)
  • ChatGPT-RetrievalQA数据集解析:用合成数据训练检索模型的实践指南
  • 初创公司如何通过Taotoken的审计日志功能追踪内部AI资源使用情况
  • 开源AI代码编辑器Void:基于VSCode的深度定制与本地化部署指南
  • 本地AI代理桥接器:统一调用多云端大模型的轻量级解决方案
  • CANN ops-fft算子开发指南
  • 使用Taotoken后我的API调用延迟与账单清晰度有了明显改善
  • 基于大语言模型的自我提升智能体:从执行-评估-学习闭环到工程实践
  • 昇思大模型量化方式
  • Kubernetes智能运维:基于AI副驾驶的自然语言集群管理实践
  • 机器学习项目工程化实战:从Poetry、Pre-commit到Hydra的标准化开发脚手架
  • 技能模型路由器:AI任务调度中枢的设计与实现
  • 努力与反思
  • TRINE架构:多模态AI计算的动态硬件加速方案
  • 动态HS树查询策略优化:提升模型诊断效率与精度的核心技术
  • 浏览器扩展开发实战:实现网页搜索框自动聚焦与键盘导航优化