【2023 · CANN训练营第一季】昇腾AI入门课(Pytorch)——第三章学习笔记

举报
yd_213988710 发表于 2023/04/24 21:05:23 2023/04/24
【摘要】 课前准备在进行开发前需要具备C/C++、Python语言基础知识以及Linux命令行操作能力图片分类应用图片分类应用即按图片中内容所属类别来区分图片,主要过程就是将图片以模型支持的参数进行输入,经过模型得出分类结果。这里以已经训练好的开源模型Resnet50为例,该模型要求输入图片的编码格式为RGB、分辨率为224*224,在模型的输出中Top5置信度的类别标签及其对应置信度(置信度表示图片...

课前准备

在进行开发前需要具备C/C++、Python语言基础知识以及Linux命令行操作能力

cke_3113.png

图片分类应用

图片分类应用即按图片中内容所属类别来区分图片,主要过程就是将图片以模型支持的参数进行输入,经过模型得出分类结果。这里以已经训练好的开源模型Resnet50为例,该模型要求输入图片的编码格式为RGB、分辨率为224*224,在模型的输出中Top5置信度的类别标签及其对应置信度(置信度表示图片所属某个类别的可能性)

cke_5239.png


云服务环境申请&AI应用体验

登录华为云进入到控制台,获取华为云帐号名以及项目 ID 信息备用

使用代金券购买 ECS 云环境,以便获取到编译、运行应用的环境。

申请代金券

跳转到申请链接填写个人信息及个人华为云ID进行申请

cke_7493.png

cke_11911.png

申请成功后可以在控制台相应页面看到代金券信息

cke_29086.png

申请共享镜像

跳转到页面后需要填写个人信息及北京四-项目ID

cke_32569.png

cke_35399.png

与代金券一样申请成功后可以在相应页面看到申请后的镜像(需要接收发放的镜像)

cke_39152.png

点击申请服务器即可进入到购买弹性服务器的页面

在选择基础配置时选择按需计费和AI加速型,其他保持默认即可

cke_42869.png

网络配置选择默认的即可

cke_46085.png

设置好云服务器名称及用户密码后确认配置即可完成云服务器配置的创建

cke_50017.png

完成创建后可以在控制台相应页面看到该服务器,且创建好后默认会在开机运行状态,如果不使用要及时进行关机操作避免一直扣费

cke_53992.png

云环境初始化

我这里使用Xshell进行远程连接,也可以直接使用华为云提供的cloudshell进行远程连接

cke_58145.png

成功登录到服务器后需要重新设置HwHiAiUser的用户密码,切换到HwHiAiUser用户,此时命令行没有回显用户标识,仅显示 $

cke_62350.png

然后需要重新设置shell环境

sudo dpkg-reconfigure dash

执行命令后会跳出一个图形界面,这里选No

cke_66697.png

成功修改配置

cke_70414.png

然后再进行用户切换,可以看到这次命令行能回显HwHiAiUser用户标识,说明设置成功

cke_74969.png

下载项目到本地

git clone <https://gitee.com/ascend/samples.git>

cke_79536.png

先进入到下载好的sample文件中的样例目录中 cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification

并在该目录下创建一个用于存放Resnet-50模型的文件夹,进入该文件夹下载文件模型和权重文件

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

命令行回显ATC启动成功

并且在model文件夹中可以看到转换后的resnet50.om文件

cke_111002.png

切换data目录准备测试图片


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 ../script/transferPic.py

回显模块未找到ModuleNotFoundError: No module named 'PIL'

尝试安装这个模块后发现可能是执行时python版本指定问题

cke_114325.png

更改执行命令为python3.6 ../script/transferPic.py 即可成功转换

cke_119216.png

然后需要设置环境变量


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

cke_124303.png

执行运行命令

make

cke_129393.png

成功执行后可以在样例目录下的out目录中看到main可执行文件,切换至该目录运行该文件

./main

执行成功得到测试图片的Top5置信度

cke_134620.png

该过程参考官方仓库中的样例https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification

运行日志

日志目录默认为"CANN软件安装目录/ascend/log",应用运行之后,可在该目录下查阅日志。

日志样例

[ERROR] TEFUSION(12940,atc):2021-10-17-05:54:07.599.074 [tensor_engine/te_fusion/pywrapper.cc:33]InitPyLogger Failed to import te.platform.log_util

日志格式

[Level] ModuleName(PID,PName):DateTimeMS [FileName:LineNumber]LogContent

cke_140205.png

日志参考

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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