本Application支持运行在Atlas 200 DK或者AI加速云服务器上,实现了对常见的分类网络的推理功能并输出前n个推理结果。
部署此Sample前,需要准备好以下环境:
- 已完成Mind Studio的安装。
- 已完成Atlas 200 DK开发者板与Mind Studio的连接,交叉编译器的安装,SD卡的制作及基本信息的配置等。
运行此Sample前,需要按照此章节获取源码包,并进行相关的环境配置。
-
将https://gitee.com/Atlas200DK/sample-classification/tree/1.3x.0.0/仓中的代码以Mind Studio安装用户下载至Mind Studio所在Ubuntu服务器的任意目录,这两个文件必须存放到同一个目录下。例如代码存放路径为:$HOME/AscendProjects/sample-classification。
-
参考表1获取此应用中所用到的原始网络模型及其对应的权重文件,并将其存放到Mind Studio所在Ubuntu服务器的任意目录,这两个文件必须存放到同一个目录下。例如:$HOME/models/classification。
表 1 通用分类网络应用使用模型
-
以Mind Studio安装用户登录Mind Studio所在Ubuntu服务器,确定当前使用的DDK版本号并设置环境变量DDK_HOME,tools_version,NPU_DEVICE_LIB和LD_LIBRARY_PATH。
-
可通过Mind Studio工具查询,也可以通过DDK软件包进行获取。
-
使用Mind Studio工具查询。
在Mind Studio工程界面依次选择“File > Settings > System Settings > Ascend DDK“,弹出如图 DDK版本号查询所示界面。
其中显示的DDK Version就是当前使用的DDK版本号,如1.31.T15.B150。
-
通过DDK软件包进行查询。
通过安装的DDK的包名获取DDK的版本号。
DDK包的包名格式为:Ascend_DDK-{software version}-{interface version}-x86_64.ubuntu16.04.tar.gz
其中software version就是DDK的软件版本号。
例如:
DDK包的包名为Ascend_DDK-1.31.T15.B150-1.1.1-x86_64.ubuntu16.04.tar.gz,则此DDK的版本号为1.31.T15.B150。
-
-
设置环境变量。
vim ~/.bashrc
执行如下命令在最后一行添加DDK_HOME及LD_LIBRARY_PATH的环境变量。
export tools_version=1.31.X.X
export DDK_HOME=$HOME/.mindstudio/huawei/ddk/1.31.X.X/ddk
export NPU_DEVICE_LIB=$DDK_HOME/../RC/host-aarch64_Ubuntu16.04.3/lib
export LD_LIBRARY_PATH=$DDK_HOME/lib/x86_64-linux-gcc5.4
- 1.31.X.X是1中查询到的DDK版本号,需要根据查询结果对应填写,如1.31.T15.B150
- 如果此环境变量已经添加,则此步骤可跳过。
输入**:wq!**保存退出。
执行如下命令使环境变量生效。
source ~/.bashrc
-
-
将原始网络模型转换为适配昇腾AI处理器的模型。
-
在Mind Studio操作界面的顶部菜单栏中选择Tool > Convert Model,进入模型转换界面。
-
在弹出的Convert Model操作界面中,进行模型转换配置。
-
单击OK开始转换模型。
模型转换成功后,后缀为.om的离线模型存放地址为_$HOME/modelzoo/XXX__/device_。
- Mindstudio模型转换中每一步的具体意义和参数说明可以参考https://ascend.huawei.com/doc/mindstudio/2.1.0(beta)/zh/zh-cn_topic_0188462651.html
- XXX表示当前转换的模型名称,如googlenet.om存放地址为$HOME/modelzoo/googlenet/device。
-
-
将转换好的模型文件(.om文件)上传到步骤1中源码所在路径下的“sample-classification/script”目录下。
-
打开对应的工程。
以Mind Studio安装用户在命令行进入安装包解压后的“MindStudio-ubuntu/bin”目录,如$HOME/MindStudio-ubuntu/bin。执行如下命令启动Mind Studio。
./MindStudio.sh
启动成功后,打开sample-classification工程,如图 打开classification工程所示。
-
在src/param_configure.conf文件中配置相关工程信息。
该配置文件内容如下:
remote_host= model_name=需要手动添加参数配置:
- remote_host:Atlas 200 DK开发者板的IP地址。
- model_name : 离线模型名称。
配置示例:
remote_host=192.168.1.2 model_name=googlenet.om- 参数必须全部填写,否则无法通过build。
- 注意参数填写时不需要使用“”符号。
- 配置文件中只能填入单个模型名称,填入的模型必须为步骤5中存储的模型之一。本示例是以googlenet举例,用户可以使用本样例列举的其它模型按照文档步骤进行替换运行。
-
开始编译,打开Mind Studio工具,在工具栏中点击Build > Build > Build-Configuration。如图 编译操作及生成文件所示,会在目录下生成build和run文件夹。
说明:
首次编译工程时,Build > Build为灰色不可点击状态。需要点击Build > Edit Build Configuration,配置编译参数后再进行编译。

-
将需要推理的图片上传至Host侧任一属组为HwHiAiUser用户的目录。
图片要求如下:
- 格式:jpg、png、bmp。
- 输入图片宽度:16px~4096px之间的整数。
- 输入图片高度:16px~4096px之间的整数。
-
在Mind Studio工具的工具栏中找到Run按钮,单击 Run > Run 'sample-classification',如图 程序已执行示意图所示,可执行程序已经在开发者板执行。
以上报错信息请忽略,因为Mind Studio无法为可执行程序传参,上述步骤是将可执行程序与依赖的库文件部署到开发者板,此步骤需要ssh登录到开发者板至相应的目录文件下手动执行,具体请参考以下步骤。
-
在Mind Studio所在Ubuntu服务器中,以HwHiAiUser用户SSH登录到Host侧。
ssh HwHiAiUser@host_ip
对于Atlas 200 DK,host_ip默认为192.168.1.2(USB连接)或者192.168.0.2(NIC连接)。
-
进入通用分类网络应用的可执行文件所在路径。
cd ~/HIAI_PROJECTS/workspace_mind_studio/classification/out
-
执行应用程序。
执行run_classification.py脚本会将推理结果在执行终端直接打印显示。
命令示例如下所示:
python3 run_classification.py -w 224 -h 224 -i ./example.jpg -n 10
- -w/model_width:模型的输入图片宽度,为16~4096之间的整数,请参考表1在Gitee上查看所使用模型文件的Readme,获取模型要求的输入数据的宽和高。
- -h/model_height:模型的输入图片高度,为16~4096之间的整数,请参考表1在Gitee上查看所使用模型文件的Readme,获取模型要求的输入数据的宽和高。
- -i/input_path:输入图片的路径,可以是目录,表示当前目录下的所有图片都作为输入(可以指定多个输入)。
- -n/top_n:输出前n个推理结果。
其他详细参数请执行python3 run_classification.py --help命令参见帮助信息。








