样例体验一之图片解码缩放与同步推理

举报
G-washington 发表于 2024/06/25 13:44:14 2024/06/25
【摘要】 该样例是基于Caffe ResNet-50网络来实现图片分类功能,芯片要求是Ascend310、310P和910。在开始前,首先要建议大家报名CANN训练营活动,然后入群找小助手领取代金券,这样就可以零成本进行样例开发了。报名链接:https://www.hiascend.com/developer/activities/details/faf270bfad7148c1beca727c5a7...

该样例是基于Caffe ResNet-50网络来实现图片分类功能,芯片要求是Ascend310、310P和910。在开始前,首先要建议大家报名CANN训练营活动,然后入群找小助手领取代金券,这样就可以零成本进行样例开发了。

报名链接:https://www.hiascend.com/developer/activities/details/faf270bfad7148c1beca727c5a70869e/signup?channelCode=0&recommended=182735


cke_29125.png


VPC(Vision Preprocessing Core)负责图像处理功能,支持对图片做抠图、缩放、格式转换等操作,大概流程可以分为创建通道描述、创建通道、申请内存、数据处理、释放内存、释放通道,具体的接口和流程可以参考下方链接:

https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC2alpha001/devguide/appdevg/aclcppdevg/aclcppdevg_000051.html



服务器购买


我们首先打开华为云官网,点击弹性云服务器,选择按需计费,AI加速器,我们选用的是x86架构,当然也可以选择鲲鹏架构,系统用公共镜像就可以,ubuntu和centos都可以,根据习惯选择。

cke_24568.png

点击下一步,选择网络,如果没有创建子网的话,需要先创建,公网带宽,根据个人需求,在这里我建议选用按流量计费,这样在不使用服务器的时候,可以点击停止,不用解绑弹性公网IP。最后输入登陆账户和密码,就可以点击创建,等待创建成功了。


环境准备


分别点击如下链接下载CANN-toolkit软件包和驱动:

https://www.hiascend.com/developer/download/community/result?module=cann

https://www.hiascend.com/hardware/firmware-drivers/community?product=2&model=3&cann=8.0.RC2.alpha001&driver=1.0.22.alpha


cke_20025.png

下载完成后,我们可以通过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


下载并运行样例


点击链接下载链接:

https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/1_classification/vpc_resnet50_imagenet_classification

上传到服务器,解压,进入相关文件夹。

cke_15520.png

下载resnet50模型相关文件:

ResNet-50网络的模型文件(*.prototxt):单击Link下载该文件。

ResNet-50网络的权重文件(*.caffemodel):单击Link下载该文件。

下载完成后,上传到如上路径的model文件夹下,执行atc模型转换命令。

cke_11076.png

准备单算子模型,执行命令:

atc --singleop=out/op_models/op_list.json --soc_version=Ascend310 --output=out/op_models

cke_6662.png

准备测试图片,将其上传到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路径,运行样例:

cke_2273.png

如图,代表样例运行成功了!


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。