Bilibili视频教程:MindStudio基于pyACL应用开发流程
MindStudio可以单独安装在Windows上。在安装MindStudio前需要在Linux服务器上安装部署好Ascend-cann-toolkit开发套件包,之后在Windows上安装MindStudio,安装完成后通过配置远程连接的方式建立MindStudio所在的Windows服务器与Ascend-cann-toolkit开发套件包所在的Linux服务器的连接,实现全流程开发功能。
具体安装流程可以参考Windows安装MindStudio(点我跳转),MindStudio环境搭建指导视频(点我跳转)。MindStudio官方下载地址:点我跳转。
本文教程基于MindStudio5.0.RC1 x64,CANN版本5.1.RC1实现。
步骤一 进入工程创建页面。
首次登录MindStudio:单击New Project,如下图所示:
非首次登录MindStudio:在顶部菜单栏中选择File > New > Project…,如下图所示:
步骤二 在New Project窗口中,选择Ascend App,按下所示配置工程,如下图所示:
点击Finish后,即创建成功
AscendCL(C++)开发可参考此贴:
https://bbs.huaweicloud.com/forum/thread-194270-1-1.html
选择Ascend App,输入项目的名称、描述、CANN远程地址以及本地地址。点击Change配置CANN,如下图所示:
点击右侧 + 进行配置远程服务器,如下图所示:
在出现的信息配置框输入相关配置信息,如下图所示:
输入服务器的SSH信息,如果测试连接失败,建议使用CMD或XShell等工具进行排查。
选择远程 CANN 安装位置,如下图所示:
在Remote CANN location中选择CANN的路径,需要注意的是必须选择到CANN的版本号目录,这里选择的是5.1.RC1版本,如下图所示:
点击确定后,需要等待MindStudio进行文件同步操作,这个过程会持续数分钟,期间如果遇到Sync remote CANN files error.错误,考虑是否无服务器root权限。
配置完成CANN点击下一步
选择ACL Project(Python),上面的是空目录,下面的是ResNet-50分类的样例,我们以Resnet-50为演示工程。
点击Finish后,即创建成功
AscendCL(C++)开发可参考此贴:
MindStudio基于AscendCL应用开发流程_MindStudio_昇腾_华为云论坛 (huaweicloud.com)
步骤一 导入工程文件。
首次登录MindStudio:在MindStudio欢迎界面中单击“Open”,选择需要导入的工程,单击“OK”确认导入。
进入工程创建页面,在顶部菜单栏中选择File > Open…,选择现有工程打开。
步骤二 若工作窗口已打开其他工程,会出现如图所示提示。
选择“This Window”,则直接在当前工作窗口打开新创建的工程;选择“New Window”,则新建一个工作窗口打开新创建的工程。
配置完成后我们还需要进行模型转化,点击Model Converter
选择Model File(.prototxt)与Weight File(.caffemodel)
可以在caffe-model-zoo: caffe pretrained models and prototxt (gitee.com)进行下载,链接: https://pan.baidu.com/s/1gXaP12zb_-qUJ1SyCe1nNg?pwd=whut 提取码: whut 复制这段内容后打开百度网盘手机App,操作更方便哦选择后会进行模型解析,此过程将持续数分钟,相关文件下载完存放在本地或者服务器任意位置。
确定模型存放位置,如下图所示:
配置完成后,点击 OK,此处注意可能等待时间较长,我们无需操作,等待软件加载完
成即可,等待界面如下图所示。
在output path中设定保存位置,保存后移动到model文件夹,保存的路径根据配置所提供的,如下图所示:
MindStudio会生成模型可视化图如下:
以Resnet-50为例:
入口代码如下,首先需要对图片进行预处理,包括图片的解码、缩放功能。处理后输入到网络进行推理
图片处理后调用acl.mdl.execute执行模型推理,如下图所示:
最后可以在device返回host的结果时输出top-5结果,如下图所示:
这里添加了ImageNet的label标签,用户可以根据自己的实际需求进行使用。
配置需要运行的文件,样例Resnet-50的运行文件为acl_net.py,如下图所示:
选择要运行的文件,这里以acl_net.py为例,如下图所示:
点击运行Run,如下图所示:
可以在远程部署设置Deployment设置远程和本地地址的映射。
推理结果如下:
Q:基于Python实现,比起C++开发ACL应用有何好处?
A:PyACL与Python一样无需编译,并且代码量比C++实现的少
Q:离线模型.om如何得到?
A:支持Caffe/TensorFlow/MindSpore/ONNX等框架训练好的模型,可以在开源社区如Gitee、Github上搜索相应的model zoo寻找自己需要的模型。
这里提供本教程的所有代码与caffe model zoo:
链接: https://pan.baidu.com/s/1EycYT_Al0mVA7AMhE1nndw
提取码: dne8
Q:CANN服务器连接失败
本地ping远程ip,用其他SSH工具进行测试排除原因
更多的疑问和信息可以在昇腾论坛进行讨论和交流:https://bbs.huaweicloud.com/forum/forum-726-1.html