【2023·CANN训练营第一季】昇腾AI入门课(上)—— 图片分类实践
基于Caffe ResNet-50网络实现图片分类的功能(同步推理)
实现步骤大致可以分为4个步骤:
- 实验环境的准备
- 下载模型资源并进行模型转换
- 准备测试图片并进行格式转换
- 设置环境变量编译运行
实验环境的准备
通过共享镜像创建的主机,并远程连接到创建的主机,首次使用需要对环境进行设置以便能切换到有开发环境的用户,如果已经准备好环境可以直接跳到步骤2
我这里使用Xshell进行远程连接,也可以直接使用华为云提供的cloudshell进行远程连接
成功登录到服务器后需要重新设置HwHiAiUser的用户密码,切换到HwHiAiUser用户,此时命令行没有回显用户标识,仅显示 $
然后需要重新设置shell环境
sudo dpkg-reconfigure dash
执行命令后会跳出一个图形界面,这里选No
成功修改配置
然后再进行用户切换,可以看到这次命令行能回显HwHiAiUser用户标识,说明设置成功
下载模型资源并进行模型转换
通过git命令直接从仓库拉取资源目录
git clone <https://gitee.com/ascend/samples.git
>
在下载好的文件目录下找到“cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification”目录,”resnet50_imagenet_classification“这个目录包含了此实验需要的目录结构,整个实验过程都是围绕在这个目录下进行的,因此这个目录一般被称为样例目录(除了通过git方式进行资源的准备,也可以先将模型资源先下载到本地然后再选择需要的目录进行上传)。
然后需要在样例目录下先创建一个用于存放Resnet-50模型的名为caffe_model的目录,然后cd进入到这个目录通过wget命令进行下载
wget <https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.prototxt
>
wget <https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.caffemodel
>
等待下载完成后回退到样例目录中进行模型的转换操作
atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --output=model/resnet50 --soc_version=Ascend310 --input_format=NCHW --input_fp16_nodes=data --output_type=FP32 --out_nodes=prob:0
准备测试图片并进行格式转换
需要先cd进入到样例目录下的用于存放测试数据的data目录,然后通过wget命令进行下载
wget <https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg>
wget <https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg>
复制
然后执行转换脚步transferPic.py将图片格式进行处理
python3.6 ../script/transferPic.py
设置环境变量编译运行
以共享镜像环境为例,配置示例如下所示:
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
复制
在样例目录下创建用于存放编译文件的目录
mkdir -p build/intermediates/host
切换到’build/intermediates/host‘,执行编译命令(以共享镜像环境为例)
cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE
执行运行命令
make
成功执行后可以在样例目录下的out目录中看到main可执行文件,切换至该目录运行该文件
./main
执行成功得到测试图片的Top5置信度
添加自己的测试图片
从视觉中国找了两张图片进行测试
将图片上传到data目录,并执行格式转换脚本
在样例目录中找到src文件夹下的sample_process.cpp文件,将格式转换后的新的文件进行添加
然后需要重新进行编译运行的步骤(需要注意如果主机重启过则需要重新配置环境变量),完成编译后执行生成的main文件得到添加测试图片的Top5置信度
- 点赞
- 收藏
- 关注作者
评论(0)