使用MindStudio进行X3D模型onnx推理

前言

本次进行的X3D模型onnx推理实验在远端服务器和MindStudio上协同进行,相当于把远程服务器的环境移植到MindStudio上进行onnx推理实验。
MindStudio是基于华为晟腾AI处理器研究开发的全栈开发平台,相当于一款功能极其丰富的IDE,关键功能包括工程开发、应用开发、模型开发以及算子开发。不仅如此,此开发平台还包括了一些辅助功能,例如脚本转换、精度比对、Profiling性能分析,AI核心错误分析工具等。对于MindStudio,不仅用户可以再本地享受MindStudio所提供的强大的功能支持,还支持连接服务器环境的使用,这使得个人设备算力不够等情况的用户也可以方便使用,该IDE对用户的交互体验很好,非常适合用户完成各种晟腾模型任务。

一、X3D模型概述

X3D是一个高效的视频网络系列,可在空间、时间、宽度和深度方面沿多个网络轴逐步扩展微型 2D 图像分类架构。受机器学习中特征选择方法的启发,采用简单的逐步网络扩展方法,在每个步骤中扩展单个轴,从而实现对复杂性的良好准确性权衡。为了将 X3D 扩展到特定的目标复杂性,在X3D模型中执行递进式前向扩展,然后执行向后收缩。X3D 实现了最先进的性能,同时需要 4.8 倍和 5.5 倍的乘法添加和参数,以实现与以前工作相似的精度。最令人惊讶的发现是,这个具有高时空分辨率的网络在处理一些视频数据湖时可以表现得非常良好,同时在网络宽度和参数方面非常轻。X3D模型在视频分类和检测基准测试方面以前所未有的效率得出了具有竞争力的精度和性能。

二、服务器推理环境准备

1、获取X3D模型onnx推理源码

进入ATC X3D(FP16)-昇腾社区 (hiascend.com),点击立即下载,并将获取的源码上传到服务器。目录结构如下图所示:
在这里插入图片描述

2、配置conda环境

在创建自己的虚拟环境时,python版本最好不小于3.8。
在这里插入图片描述

安装完上述基础依赖后,根据ATC X3D(FP16)-昇腾社区 (hiascend.com)中快速上手->获取源码->3.获取开源代码仓 进行detectron2_repo源码包和SlowFast源码包的下载与安装。

3、准备数据集

根据源码目录readme文档进行Kinetics-400数据集的获取以及简单处理,数据集目录结构如下:
├── Kinetics-400
├──val
├──abseiling
├──air_drumming
├──answering_questions
├──applauding
├──applying_cream

├──yoga
├──zumba
├──test.csv

4、准备msame工具

该过程需要使用msame工具,可以在MindStudio的Remote Terminal中执行git clone https:/gitee.com/ascend/tools.git得到tools文件夹,MindStudio的Remote Terminal连接在本文第四部分进行介绍,用户也可以直接在服务器中执行此命令。
在服务器中执行以下命令来设置环境变量
export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=$DDK_PATH/acllib/lib64/stub
进入tools/msame文件夹,设置文件权限,运行编译脚本
在这里插入图片描述

三、MindStudio环境准备

1、安装与推理环境准备

按照MindStudio用户手册中的安装指南—>安装操作来安装MindStudio,而推理环境在服务器上已经配置完成,使用MindStudio直接进行ssh连接即可。

2、工程创建

点击New Project创建新工程
在这里插入图片描述

选择Ascend App项目,在CANN Version一栏点击change进入下图界面
在这里插入图片描述

点击加号进入添加服务器页面,根据所使用服务器填入用户名,IP,密码等信息
在这里插入图片描述

服务器连接成功后,选择CANN目录

在这里插入图片描述

点击finish
在这里插入图片描述

等待本地同步远端服务器CANN文件。同步完成后,出现下图界面
在这里插入图片描述

点击next,选择ACL Project(python)项目,点击finish,完成工程创建
在这里插入图片描述

在这里插入图片描述

配置项目结构,点击File->Project Structure…进入下图页面
在这里插入图片描述

选择Add Python SDK后,选择ssh interpreter,再Deploy一栏选择远程服务器
在这里插入图片描述

接下来在Interpreter一栏选择自己的python解释器
在这里插入图片描述

完成之后如下图所示,可以对Name进行修改
在这里插入图片描述

配置本地文件夹与远程服务器映射
在这里插入图片描述

把远程服务器的代码拉取到本地
在这里插入图片描述

四、在MindStudio上执行推理

1、数据预处理

参照ATC X3D(FP16)-昇腾社区 (hiascend.com)的数据预处理部分,将数据集以及其标签文件处理好

2、生成数据集bin文件

使用MindStudio终端在当前目录下创建一个data_bin_bs1的文件夹
在这里插入图片描述

运行X3d_preprocess.py,在Command Arguments一栏填写运行此脚本所需的参数设置
在这里插入图片描述

在data_bin_bs1目录下生成bin数据文件
参数解释:
–cfg:模型配置文件
DATA.PATH_TO_DATA_DIR:标签文件路径
DATA.PATH_PREFIX:数据集路径
TEST.BATCH_SIZE:批次参数
X3D_PREPROCESS.DATA_OUTPUT_PATH:输出文件路径
在这里插入图片描述

3、pyth文件转onnx文件

运行X3d_pth2onnx.py导出onnx文件
在这里插入图片描述

在当前目录下生成X3D模型的onnx文件x3d_s.onnx
在这里插入图片描述

4、onnx模型转换为om模型

首先填写模型信息,找到远端服务器中onnx模型的路径,然后选择模型输入格式,自己填写输入图片的尺寸,点击next。如下图所示:
在这里插入图片描述

模型信息填写成功后,等待有关模型数据的预处理,完成后点击next
在这里插入图片描述

上述步骤成功后,下图页面会自动填写模型转换的具体命令
在这里插入图片描述

参数解释:
–model:为ONNX模型文件。
–framework:5代表ONNX模型。
–output:输出的OM模型。
–input_format:输入数据的格式。
–input_shape:输入数据的shape。
–check_report:分析报告。
–soc_version:处理器型号。
最终模型转换成功,如下图所示:
在这里插入图片描述

5、模型benchmark推理性能验证

导出om模型后,使用MindStudio的Remote Terminal进行benchmark推理,依次执行以下步骤
开启远程服务器终端
在这里插入图片描述

激活服务器中自己创建的虚拟环境
在这里插入图片描述

进入X3D工作目录
在这里插入图片描述

增加benchmark工具可执行权限,进行性能验证
在这里插入图片描述

报错的原因是因为没有导入benchmark工具推理所需的依赖,执行一下source /usr/local/Ascend/ascend-toolkit/set_env.sh命令即可解决。
最后得到的性能如下图所示
在这里插入图片描述

6、X3D模型精度验证

在Remote Terminal中设置main文件权限并执行推理命令,生成om_res_bs1文件夹
在这里插入图片描述

参数解释:
–model :输入的om文件。
–input:输入的bin数据文件。
–device:NPU设备编号。
–outfmt:输出数据的格式。
然后执行X3d_postprocess.py脚本文件
在这里插入图片描述

参数解释:
–cfg:模型配置文件。
TEST.BATCH_SIZE:输入参数。
X3D_POSTPROCESS.OM_OUTPUT_PATH :后处理结果放置位置。
精度结果:
在这里插入图片描述

五、FAQ

Q:执行所有python脚本文件时,Command Arguments如何填写?
在这里插入图片描述

A:与在远程服务器上运行命令时的参数一样即可,可将其直接复制到Command Arguments一栏。

Q:在310P服务器上如何进行X3D模型的onnx推理验证?

A:310P上执行推理与310基本一样,只需把soc_version=310的地方更换为soc_version=310P即可。

Q:模型转换时,自己添加完模型后,MindStudio对其自动解析得出的shape和format不能成功实现om模型的导出

在这里插入图片描述

A:点击删除按钮,自己手动配置模型输入信息即可。其中最重要的一步就是shape一栏的填写,具体可参考MindStudio用户手册中的模型转换一节来配置输入信息。

Q:MindStudio已经成功连接服务器,但配置远程python解释器时,无法检测到自己conda环境里的所有依赖。

A:建议先进行ssh配置和Deployment同步,再进行远程python解释器的连接

最后,开发者在使用 MindStudio 或进行算子开发过程中遇到任何问题,都可以从昇腾社区获得更多的帮助。
昇腾官网:https://www.hiascend.com/
昇腾社区:https://bbs.huaweicloud.com/
昇腾论坛:https://bbs.huaweicloud.com/forum/forum-726-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值