通过阅读该篇文章,您能够学习到以下内容:
- 模型转换流程:使用ATC工具,转换为适用于昇腾AI处理器的离线模型。
- 定制化模型生成:定制化模型生成。
- 实用示例:通过具体的示例和操作步骤,使用ATC进行模型转换。
什么是ATC
ATC是昇腾AI处理器的模型转换工具,将训练好的模型转换成能在昇腾硬件上运行的格式。
为什么要使用ATC工具转换模型格式
昇腾芯片(如Ascend 910/310/800)采用异构计算架构,与通用CPU/GPU设计不同,需通过ATC实现:
- 硬件适配:将通用框架模型转为昇腾专用指令集。
- 性能优化:通过算子融合、内存复用等技术提升推理效率。
- 跨框架兼容:统一不同框架模型至昇腾运行环境。
- 离线部署:生成脱离训练框架的独立模型,降低部署依赖。
华为昇腾ATC是连接AI算法与昇腾硬件的“桥梁”,ATC帮助AI模型在华为硬件上“跑得更快、运行更顺畅”。
什么时候使用
ATC主要在模型部署阶段使用,典型场景包括:
- 将训练好的模型部署到昇腾芯片(如Atlas系列硬件)。
- 需优化模型推理性能(如时延、吞吐量)。
- 跨框架迁移(如PyTorch模型转昇腾运行)。
- 边缘端部署(如Ascend 310芯片的端侧设备)。
安装步骤
使用ATC工具基本流程
- 准备模型:导出为ONNX、TensorFlow冻结图(.pb)等格式。
- 编写转换配置:定义输入/输出节点、数据类型、Shape等(通过.cfg文件)。
- 执行ATC命令:调用命令行工具完成转换。
atc --model=model.onnx --framework=5 --output=model_optimized --soc_version=Ascend310
- 验证模型:使用昇腾推理工具(如Ascend CL)验证.om文件。
关键参数
--model
:输入模型路径。--framework
:原框架类型(如5=ONNX)。--soc_version
:目标昇腾芯片型号(如Ascend310)。--input_shape
:指定动态Shape(若模型支持动态输入)。