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

极智AI | 昇腾 CANN ATC 模型转换

欢迎关注我的公众号 [极智视界],获取我的更多笔记分享

  大家好,我是极智视界,本文介绍一下 昇腾 CANN ATC 模型转换

  昇腾 CANN 的全称是 Compute Architecture for Neural Networks,是昇腾针对 AI 场景推出的异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。用过昇腾的同学应该都清楚,需要把咱们的原始模型 (可能是 pytorch 的,可能是 tf 的,可能是 caffe 的,也可能是 darknet 的) 转换成 .om 模型,然后才能调用 AclLiteModel::ExecuteEx() 进行模型的推理。这个 模型转换的过程 就要用到 CANN 的 ATC 工具。目前 ATC 工具直接支持从 caffe、onnx、tf pb 以及 mindspore 模型的转换,所以如果你的训练框架是 pytorch,则需要做 torch.onnx.export 的操作;如果你的训练框架是 darknet,则需要做 darknet -> caffedarknet -> onnx 的转换,之后才能用到 ATC。以上说的是整网模型,当然 ATC 还支持用 Ascend IR 定义的单算子的 om 转换。因此就形成了如下的 ATC 功能架构图:

在这里插入图片描述

  在使用 ATC 流程时,需要先安装好 CANN 开发环境,然后准备好需要转换的模型文件(caffemodel、onnxmodel、pbmodel、mindsporemodel、json单算子模型),然后可以开始使用 ATC(可选 AIPP 配置)。整体ATC 工具的执行流程如下:
在这里插入图片描述

  来解释一下 AIPP 配置:AIPP 是 ATC 的高级功能,AIPP 全称 Artificial Intelligence Pre-Processing 智能图像预处理,用于在昇腾 AI Core 上完成图像预处理,包括改变图像尺寸(crop + padding,reisze(暂时还不支持))、色域转换 (转换图像格式:BGR->RGB、YUV->BGR 等)、归一化 (减均值除方差),在 AIPP 图像数据预处理之后再把数据喂给模型推理。可以说,有了 AIPP,你一般不用在模型外面再自己写预处理了。自己在模型外面写预处理有几个弊端:(1) 开发 AI Core 是有门槛的 (TBE 或 TIK开发方式);(2) 如果你用 AI CPU (注意:所谓的 AI CPU 也是昇腾卡上的计算资源,不是直观理解的 CPU) 去写预处理算子,一方面也是有门槛的 (可能比 AI Core 开发门槛低一点),另一方面性能也不会好到哪里去;(3) 如果你干脆就直接跑在 CPU 上,那么可能会涉及 deviceTohost / hostTodevice 的数据拷贝,而且本身 CPU 就比较慢。

  下面我整理了一下 ATC 的传参,主要包括 总体选项输入选项输出选项目标芯片选项功能配置选项模型调优选项算子调优选项调试选项,如下:
在这里插入图片描述


  好了,以上分享了 昇腾 CANN ATC 模型转换,希望我的分享能对你的学习有一点帮助。


 【极智视界】

《极智AI | 昇腾 CANN ATC 模型转换》


在这里插入图片描述

搜索关注我的微信公众号【极智视界】,获取我的更多经验分享,让我们用极致+极客的心态来迎接AI !


相关文章:

  • 富文本编辑器(添加列表)
  • 格理论与密码学-2-2-公钥密码体制和哈希函数
  • Vue框架的学习(Vue操作指令学习三 V-bind )第三课
  • C语言之指针(中)
  • neo4j-jdbc-driver这个坑货
  • 云存储系统架构及优势
  • Oracle SQL执行计划操作(1)——表相关操作
  • C语言实现三子棋小游戏(源码+教程)
  • 解读数据可用性赛道:如何讲好模块化区块链的叙事?
  • 如何进入 mysql?
  • java计算机毕业设计VUE商场库存管理系统MyBatis+系统+LW文档+源码+调试部署
  • LeetCode链表练习(上)
  • 面试不面试,你都必须得掌握的vue知识
  • 墙裂推荐,阿里内网价值9K的Java中高级核心全解析笔记
  • VS2022 程序打包过程总结
  • 第三章:Java基本语法
  • centos7安装python3.7
  • Ansys Zemax | 大功率激光系统的 STOP 分析1:如何使用 OpticStudio 优化光学设置
  • JAVA初阶——程序逻辑控制
  • yolov3学习笔记