【MindStudio训练营第一季】使用MindStudio复现resnet50分类任务

一、前言

在训练营进阶班的课程中,老师使用了resnet50的样例,分析了其中的ACL代码,本文将复现这个resnet50分类项目,为后面ACL编程学习做铺垫。

项目的Gitee仓如下:

cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification · Ascend/samples - 码云 - 开源中国 (gitee.com)

二、环境配置

1、模型转换

这里我依旧使用的是Atlas 200 DK开发者套件的环境,使用官方镜像也是同理。

我们首先需要下载ResNet-50的模型文件和权重文件:

[https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.prototxt](https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC Model/resnet50/resnet50.prototxt)

[https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.caffemodel](https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC Model/resnet50/resnet50.caffemodel)

我们在项目根目录新建一个model文件夹,将下载的模型文件和权重文件放入其中。

使用MindStudio的模型转换功能将模型转换成能部署在昇腾设备上的离线om格式:
【MindStudio训练营第一季】使用MindStudio复现resnet50分类任务_第1张图片

点击上方Ascend栏,选择Model Converter,配置CANN的路径和模型文件路径,其会自动匹配权重文件路径,配置模型输出路径,点击”Next“–>”Finish“,即可开始转模型。
【MindStudio训练营第一季】使用MindStudio复现resnet50分类任务_第2张图片

转模型成功!

【MindStudio训练营第一季】使用MindStudio复现resnet50分类任务_第3张图片

【MindStudio训练营第一季】使用MindStudio复现resnet50分类任务_第4张图片

2、下载测试图片

点击下方链接下载测试图片,放入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

我们需要将这两张图片转换成二进制bin格式,使用transferPic.py脚本:

cd /data
python3 ../script/transferPic.py

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GkH0w1JZ-1671962071997)(null)]

【MindStudio训练营第一季】使用MindStudio复现resnet50分类任务_第5张图片

三、编译运行

创建个文件夹用于存放编译文件:

mkdir -p build/intermediates/host

执行如下命令生成编译文件:

cd build/intermediates/host
cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE
make

【MindStudio训练营第一季】使用MindStudio复现resnet50分类任务_第6张图片

生成的可执行文件将会在out文件夹中。

运行生成的可执行文件:

./main

我们可以看到两张测试图片Top5的置信度。
【MindStudio训练营第一季】使用MindStudio复现resnet50分类任务_第7张图片

四、后话

在本次样例的代码中,我们可以看到使用了大量ACL语言,我们可以以这个项目为基础,学习ACL语言的功能与使用。学有余力的小伙伴还可以完成进阶班的大作业喔~

你可能感兴趣的:(分类)