中文|英文
本Application支持运行在Atlas 200 DK或者AI加速云服务器上,实现了对常见的分类网络的推理功能并输出前n个推理结果。
部署此Sample前,需要准备好以下环境:
- 已完成Mind Studio的安装。
- 已完成Atlas 200 DK开发者板与Mind Studio的连接,交叉编译器的安装,SD卡的制作及基本信息的配置等。
运行此Sample前,需要按照此章节获取源码包,并进行相关的环境配置。
-
获取源码包。
将https://github.com/Ascend/sample-classification仓中的代码以Mind Studio安装用户下载至Mind Studio所在Ubuntu服务器的任意目录,例如代码存放路径为:/home/ascend/sample-classification。
-
参考表1获取此应用中所用到的原始网络模型及其对应的权重文件,并将其存放到Mind Studio所在Ubuntu服务器的任意目录,例如$HOME/ascend/models/classification。
表 1 通用分类网络应用使用模型
-
将原始网络模型转换为Davinci模型。
-
以Mind Studio安装用户登录Mind Studio所在Ubuntu服务器,并设置环境变量DDK_HOME。
vim ~/.bashrc
执行如下命令在最后一行添加DDK_HOME及LD_LIBRARY_PATH的环境变量。
export DDK_HOME=/home/XXX/tools/che/ddk/ddk
export LD_LIBRARY_PATH=$DDK_HOME/uihost/lib
- XXX为Mind Studio安装用户,/home/XXX/tools为DDK默认安装路径。
- 如果此环境变量已经添加,则此步骤可跳过。
输入:wq!保存退出。
执行如下命令使环境变量生效。
source ~/.bashrc
-
以Mind Studio安装用户进入通用分类网络应用代码所在根目录,如_/home/ascend/sample-classification_。
-
执行部署脚本,进行工程环境准备,包括公共库的编译与部署、应用的编译与部署等操作。
bash deploy.sh host_ip model_mode
- host_ip:对于Atlas 200 DK开发者板,即为开发者板的IP地址。对于AI加速云服务器,即为Host的IP地址。
- model_mode 代表模型文件的部署方式,默认为internet。
- local:若Mind Studio所在Ubuntu系统未连接网络,请使用local模式,执行此命令前,需要参考公共代码库下载将依赖的公共代码库ezdvpp下载到“sample-classification/script“目录下。
- internet:若Mind Studio所在Ubuntu系统已连接网络,请使用internet模式,在线下载依赖代码库ezdvpp。
命令示例:
bash deploy.sh 192.168.1.2 internet
-
参考表1将需要使用的已经转换好的Davinci离线模型文件与需要推理的图片上传至Host侧任一属组为HwHiAiUser用户的目录。
例如将模型文件alexnet.om上传到Host侧的“/home/HwHiAiUser/models“目录下。
图片要求如下:
- 格式:jpg、png、bmp。
- 输入图片宽度:16px~4096px之间的整数。
- 输入图片高度:16px~4096px之间的整数。
-
在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连接)。
对于AI加速云服务器,host_ip即为当前Mind Studio所在服务器的IP地址。
-
进入贯通网络的可执行文件所在路径。
cd ~/HIAI_PROJECTS/ascend_workspace/classification/out
-
执行应用程序。
执行run_classification.py脚本会将推理结果在执行终端直接打印显示。
命令示例如下所示:
python3 run_classification.py -m ~/models/alexnet.om -w 227 -h 227 -i
./example.jpg -n 10
- -m/--model_path:离线模型存储路径。
- -w/model_width:模型的输入图片宽度,为16~4096之间的整数,请参考表1在Github上查看所使用模型文件的Readme,获取模型要求的输入数据的宽和高。
- -h/model_height:模型的输入图片高度,为16~4096之间的整数,请参考表1在Github上查看所使用模型文件的Readme,获取模型要求的输入数据的宽和高。
- -i/input_path:输入图片的路径,可以是目录,表示当前目录下的所有图片都作为输入(可以指定多个输入)。
- -n/top_n:输出前n个推理结果。
其他详细参数请执行python3 run_classification.py --help命令参见帮助信息。
将依赖的软件库下载到“sample-classification/script“目录下。
表 2 依赖代码库下载
