样例体验一之图片解码缩放与同步推理
该样例是基于Caffe ResNet-50网络来实现图片分类功能,芯片要求是Ascend310、310P和910。在开始前,首先要建议大家报名CANN训练营活动,然后入群找小助手领取代金券,这样就可以零成本进行样例开发了。
报名链接:https://www.hiascend.com/developer/activities/details/faf270bfad7148c1beca727c5a70869e/signup?channelCode=0&recommended=182735
VPC(Vision Preprocessing Core)负责图像处理功能,支持对图片做抠图、缩放、格式转换等操作,大概流程可以分为创建通道描述、创建通道、申请内存、数据处理、释放内存、释放通道,具体的接口和流程可以参考下方链接:
服务器购买
我们首先打开华为云官网,点击弹性云服务器,选择按需计费,AI加速器,我们选用的是x86架构,当然也可以选择鲲鹏架构,系统用公共镜像就可以,ubuntu和centos都可以,根据习惯选择。
点击下一步,选择网络,如果没有创建子网的话,需要先创建,公网带宽,根据个人需求,在这里我建议选用按流量计费,这样在不使用服务器的时候,可以点击停止,不用解绑弹性公网IP。最后输入登陆账户和密码,就可以点击创建,等待创建成功了。
环境准备
分别点击如下链接下载CANN-toolkit软件包和驱动:
https://www.hiascend.com/developer/download/community/result?module=cann
下载完成后,我们可以通过mobaxterm将文件上传到服务器。
因为本身的服务器是安装有cann软件包的,不过版本比较低,在软件包上传完成后,我们就可以进行软件的升级了。
驱动升级:chmod + ./{product name}-npu-firmware_x.x.x.x.X.run
./{product name}-npu-firmware_x.x.x.x.X.run --upgrade
升级成功后,可以执行npu-smi查看版本。
CANN升级:chmod +x 软件包名.run
./软件包名.run --upgrade
使环境变量生效: 在安装目录下,执行./set_env.sh
设置python变量:
#用于设置python3.7.5库文件路径
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
#如果用户环境存在多个python3版本,则指定使用python3.7.5版本
export PATH=/usr/local/python3.7.5/bin:$PATH
下载并运行样例
点击链接下载链接:
上传到服务器,解压,进入相关文件夹。
下载resnet50模型相关文件:
ResNet-50网络的模型文件(*.prototxt):单击Link下载该文件。
ResNet-50网络的权重文件(*.caffemodel):单击Link下载该文件。
下载完成后,上传到如上路径的model文件夹下,执行atc模型转换命令。
准备单算子模型,执行命令:
atc --singleop=out/op_models/op_list.json --soc_version=Ascend310 --output=out/op_models
准备测试图片,将其上传到data文件夹下:
https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg
https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg
编译运行
我们的开发环境和运行环境操作架构一样使用如下配置:
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
切换到样例目录,创建目录用于存放编译文件:
mkdir -p build/intermediates/host
执行编译命令:
cd build/intermediates/host
cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE
make
编译成功后,切换到out路径,运行样例:
如图,代表样例运行成功了!
- 点赞
- 收藏
- 关注作者
评论(0)