介绍
软件简介
本文旨在帮助用户使用 CANN 架构和 MindStudio 平台进行 AI CPU 离线模型推理指导。其中 CANN(Compute Architecture for Neural Networks)是华为公司针对 AI 场景推出的
异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于昇腾平台的 AI 应用和业务。CANN 框架下有众多软件包供用户使用,比如 Profiling 性能分析工具,AtuoMl 工具, Atc 工具以及 Benchmark 工具等。在模型推理工作中,涉及到 Atc 和 Bechmark 工具。
AI 模型推理步骤涉及模型转换和推理以及精度测试过程。
Mindstudio 提供您在 AICPU 上模型转换功能,由于 Mindstudio 版本的升级,Mindstudio 移除了模型推理所需的 benchmark 菜单,所以我整体流程无法全部在 Mindstudio 可视化节目完成。本文我将使用 Mindstudio 可视化节目进行模型转换并且在 Mindstudio 的 Remote 终端进行推理步骤。
模型简介
Deit 是一个全 Transformer 的架构,没有使用任何的卷积操作。其核心是将蒸馏方法引入 VIT 的训练,引入了一种教师-学生的训练策略,提出了 token-based distillation。有趣的是, 这种训练策略使用卷积网络作为教师网络进行蒸馏,能够比使用 transformer 架构的网络作为教师取得更好的效果。
安装教程
CANN 软件包
CANN 下载链接:昇腾社区-官网丨昇腾万里 让智能无所不及
CANN 安装指南:
Mindstudio 平台
Mindstudio 下载地址:昇腾社区-官网丨昇腾万里 让智能无所不及
由于我电脑是 Windows11,所以接下来的安装过程都是在 win11 系统下进行的。
Python 官方网站下载安装安装 Python3.7.5 到 Windows 本地。
在开始菜单搜索“环境变量”,在“环境变量 > 用户变量(U)”弹框中选中 Path 变量后单击“编辑”,如图 1 所示:
图 1
这里我们要将 Python 安装环境下的 Scipts 路径添加到 Path 里,最后点击确认,完成环境变量设置。
Python 安装完成后,需要安装 Python 依赖环境:
pip install xlrd==1.2.0
pip install absl-py
pip install numpy
pip install requests
安装 MinGW 依赖
首先根据电脑配置,下载适合的(下载地址),例如 64 位可以选择 x86_64-posix-seh, 解压 MinGW 安装包到自定义路径。
接着跟上述配置环境变量方式相同,将安装 MinGW 路径下的bin 文件夹添加到Path 中。最后我们打开电脑 CMD 终端查看是否安装成功,如图 2 所示:
图 2
安装 Java 依赖
要求 Java 版本为 11,下载地址。
我们将 java 安装包路径下的 bin 添加到 Path 里,接下来验证是否安装成功,如图 3 所
示:
图 3
安装 Cmake 依赖
Cmake 可以到官网下载 msi 文件进行安装,打开安装包后选择自己要安装的路径,但是要将安装路径添加到环系统境里,如图 4 所示:
图 4
安装 Mindstudio
我们选择 exe 安装方式,下完成安装包后,我们选择安装路径后,进入图 5 界面,这里我们选择 64bit launcher 和 add launcher dir to Path。
图 5
下载 jbr
下载 jbr,解压到 MindStudio 安装根目录,与 bin 目录同级。
推理实践
ONNX 简介
ONNX 是一种针对机器学习所设计的开放式的文件格式,于存储训练好的模型。它使得不同的深度学习框架(如 Pytorch, MXNet)可以采用相同格式存储模型数据。简而言之,ONNX 是一种便于 在各个主流深度学习框架中迁移模型的中间表达格式。
开放式神经网络交换(ONNX)是迈向开放式生态系统的第一步,它使 AI 开发人员能够随着项目的发展选择合适的工具。ONNX 为 AI 模型提供开源格式。它定义了可扩展的计算图模型,以及内置运算符和标准数据类型的定义。最初的 ONNX 专注于推理(评估)所需的功能。ONNX 解释计算图的可移植,它使用 graph 的序列化格式。它不一定是框架选择在内部使用和操作计算的形式。例如,如果在优化过程中操作更有效,则实现可以在存储器中以不同方 式表示模型。
ONNX 推理分析
这里我们要明确推理的模型推理的输出输出,如表 1 所示:
输入数据 |
大小 |
数据类型 |
数据排布格式 |