执行AscendCL应用工程推理
创建应用工程
- 单击菜单栏“New Project”窗口,选择 模板样例工程,单击“Change”配置CANN版本。如图1所示。 ,弹出
- CANN Version:CANN软件包版本,如未识别或想要更换使用的版本,可单击“Change”,在弹出界面中选择Ascend-cann-toolkit开发套件包的安装路径(注意需选择到版本号或者latest一级)。
- Samples:样例工程,选择“ACL ResNet-50(C++)”。
- 单击“Next”,进入配置工程相关参数界面,配置工程名称和目录。如图2所示。
- Project name:工程名称,可自定义。
- Project location:工程目录,默认在“$HOME/MindstudioProjects”下创建。
- 单击“Finish”,完成工程创建。
生成应用工程目录如图3所示。
获取模型和数据文件
- 获取第三方模型文件。
您可以从以下链接中获取ResNet-50网络的模型文件(*.prototxt)、权重文件(*.caffemodel),并以MindStudio安装用户将获取的文件上传至MindStudio安装服务器“工程目录/model”目录下。
- 转换模型。
需要先按照如下步骤将第三方模型转换为适配昇腾AI处理器的离线模型(*.om文件),之后在应用工程内添加*.om模型文件。
- 单击菜单栏“Model Information”页签中配置模型文件(Model File)和权重文件(Weight File),界面参考如图4所示。 打开模型转换页面,在
- 单击“Next”,进入“Data Pre-Processing”配置数据预处理(FP16无需进行数据预处理),界面参考如图5所示。
- 单击“Next”,进入“Advanced Options Preview”高级选项配置,界面参考如图6所示。
- 单击“Finish”,开始进行模型转换。
在MindStudio界面下方,“Output”窗口会显示模型转换过程中的日志信息,如果提示“Model converted successfully”,则表示模型转换成功。“Output”窗口会显示模型转换所用的命令、所设置的环境变量、模型转换的结果、模型输出路径以及模型转换日志路径等信息。
模型转换完毕,在服务器后台路径(Output Path)下会生成用于运行环境运行的*.om模型文件。
- 准备推理数据。
请通过以下链接获取该样例的输入图片,根据实际使用场景进行操作。
数据图片1、数据图片2- 以运行用户将获取的文件上传至开发环境的“工程目录/data”目录下。如果目录不存在,需自行创建。
- 以运行用户登录开发环境。
- 切换到“工程目录/data”目录下,执行“transferPic.py”脚本,将*.jpg转换为*.bin,同时将图片从1024*683的分辨率缩放为224*224。在“工程目录/data”目录下生成2个*.bin文件。
python3 ../script/transferPic.py
如果执行脚本出现以下报错,则表示缺少Pillow库,请使用pip3 install Pillow --user命令安装Pillow库。
ModuleNotFoundError: No module named 'PIL'
开发应用
创建应用工程后,工程的src目录下自带应用的模板代码,包含系统初始化、模型执行、模型卸载、资源销毁等代码。若想直接使用src目录下的*.cpp模板代码,则只需按照模型文件和图片的名称、所在的路径修改sample_process.cpp中的如下代码。此处只能设置相对路径,不能设置绝对路径。
- 请根据实际情况,修改图片文件的名称以及路径。
//此处的..表示相对路径,相对可执行文件所在的目录 //例如,编译出来的可执行文件存放在out目录下,此处的..就表示out目录的上一级目录 string testFile[] = { "../data/dog1_1024_683.bin", "../data/dog2_1024_683.bin" };
- 请根据实际情况,将*.om模型文件拷贝至“工程目录/model”下(若有重名文件可重命名以防覆盖)。
//此处的..表示相对路径,相对可执行文件所在的目录 //例如,编译出来的可执行文件存放在out目录下,此处的..就表示out目录的上一级目录 const char* omModelPath = "../model/resnet50.om";
在模板代码中,“接口名称以acl开头”的接口是系统对用户开放的接口。关于接口的详细说明,请参见《应用软件开发指南(C&C++)》中“AscendCL API参考”章节。
编译并运行应用工程
- 编译配置。在MindStudio工程界面菜单栏,选择 ,进入编译配置页面。
- 配置编译参数,单击
添加新增配置。
列表中带有“(default)”标记的配置项为当前默认配置项,如需进行变更,可选中所需配置项,并单击
进行切换。
图7 编译配置 - 单击“OK”保存编译工程。
- 配置编译参数,单击
- 在MindStudio工程界面,依次选择 ,使用默认配置进行增量编译。
如果在编译过程中无错误提示,且提示“Build finished”,则表示编译成功。
- 在MindStudio工程界面菜单栏,选择 ,进入运行配置页面。
- 单击“
> CMake Application”新增并配置应用工程运行参数,图8为配置示例。
- Executable:选择编译用可执行文件的路径,选择到文件一级。
- Working directory:工作目录。(如工程中配置了相对路径,则需在该选项中选择相对的工作目录。本工程须指定工作目录。)
- 配置完成后,单击“Apply”保存运行配置,单击“OK”,关闭运行配置窗口。
- 在MindStudio工程界面,依次选择“Run > Run...”。
在弹出框中选择已创建好的运行配置信息,运行应用。
父主题: 性能分析(AscendCL应用)