【2023 · CANN训练营第一季】昇腾AI入门课(Pytorch)——第三章 AI应用开发

举报
STRUGGLE_xlf 发表于 2023/04/19 01:09:40 2023/04/19
【摘要】 第1节 课程概述第1单元 本课程是否适合您1.没有深度学习的背景 边学习边补充基础 2.少量深度学习背景,但并不了解华为昇腾 对于昇腾的学习是贯穿全程的 3.听说过或接触过华为昇腾,但不知道如何基于昇腾使能AI应用。 保持学习,按时交作业第2单元 本章学习目标1.了解昇腾 AI 全栈架构及该架构中各层的作用。 2.了解异构计算架构 CANN 在昇腾 AI 全栈中的位置和作用。 3.了解应用开...

第1节 课程概述

第1单元 本课程是否适合您

1.没有深度学习的背景
边学习边补充基础
2.少量深度学习背景,但并不了解华为昇腾
对于昇腾的学习是贯穿全程的
3.听说过或接触过华为昇腾,但不知道如何基于昇腾使能AI应用。
保持学习,按时交作业

第2单元 本章学习目标

1.了解昇腾 AI 全栈架构及该架构中各层的作用。 2.了解异构计算架构 CANN 在昇腾 AI 全栈中的位置和作用。 3.了解应用开发编程框架、基本概念。 4.掌握的应用开发流程,可以按照指导编译、运行应用。 5.了解如何获取及查看应用运行日志,具备基本的问题定界、定位能力。 在开始应用开发入门课程之前,请先通读第2节您需要提前准备什么,以便更好地理解本课程中涉及的概念并完成练习。

第3单元 遇到问题如何求助

可以借助以下渠道:

参考CANN Sample 仓中样例开发时,相关问题可以在该仓上提Issue,该仓的接口人会定期处理问题。

模型相关的问题,可以在ModelZoo仓上提Issue,该仓的接口人会定期处理问题。

也可在昇腾社区论坛中查阅经验贴,或者发求助帖,论坛上的其他开发人员会跟帖,论坛的接口人也会定期审视问题。

第2节 您需要提前准备什么

第1单元 具备编程经验

需具备C&&C++语言,Python语言下列知识:



图片分类应用简介

第2单元 熟悉Linux基本操作

第3单元 了解深度学习

为了让计算机掌握人类理解的知识,需要构筑一个由简单概念组成的多层连接网络来定义复杂对象,计算机通过对这个网络的迭代计算与训练后,可以掌握这个对象的特征,一般称这种方法为深度学习( DeepLearning , DL )。互联网的发展产生了庞大的数据量,为深度学习的发展提供了更大的机会,也让人工智能成为当今的热点,而深度神经网络成了热点中的热点。深度学习经过一系列的发展之后,展现出巨大的应用价值,不断受到工业界、学术界的密切关注。深度学习在图像、语音、自然语言处理、大数据特征提取和广告点击率预估方面取得明显进展。 关于深度学习的基本原理、基本概念等介绍,请参见: Link 。

第3节 云服务器环境申请&AI应用体验

第1单元 本节学习目标

了解如何使用代金券申请云环境,并在云环境中快速体验一个样例的运行。

第2单元 申请云环境

操作视频
1.获取华为云帐号名以及项目 ID ,以便课程接口人给您推送云环境镜像。
2.使用代金券购买 ECS 云环境,以便获取到编译、运行应用的环境。
购买 ECS 云环境成功后,您可以获取到一个服务器 IP 地址, SSH 方式远程登录到该服务器上,您可以接着快速体验样例,参见第3单元快速体验。
获取华为账号和项目 ID :
1.网页登录
https://www.huaweicloud.com/
进入到网页后,点击账号中心,账号名如下:

然后点击我的凭证:

账号ID如下:

有了华为云账号和项目ID之后,就可以填以下链接申请镜像:
镜像申请
申请好了镜像之后,可以填以下链接,申请代金券:
代金券申请
如果在以下页面看到代金券和镜像发放,就可以创建云服务器了:



使用代金券购买ECS:





最后点击同意,即可完成购买。
在云服务器可以看到刚刚购买的服务器:

第4节 图片分类应用应用开发过程精讲

可以将服务器与本地的IDE连接,我这里连接的是VSCode:

注意:在连接到VSCode之前,要注意先把弹性云服务器的远程登录打开

复制弹性公网IP地址:

打开VSCode:
点击远程连接扩展,如果没有这个扩展,可以在VSCode 扩展插件里下载Remote - SSH:

输入链接指令:ssh root@你的公网IP地址

即可链接成功。
修改默认用户密码:

passwd HwHiAiUser


切换用户:

su - HwHiAiUser

使用HwHiAiUser创建一个新的ssh连接,密码为刚刚设置的。

新建终端就是这样的页面:

切换用户并查看文件:

编译及运行应用
转换模型
改用bash

sudo dpkg-reconfigure dash

选择no

ls -l `which sh`

要注意这里的但引号是英文输入法下的Tab键上面的引号,输入其他的可能会报错,得到/bin/sh - > bash 说明正确。

再次切换用户

su - HwHiAiUser

一定要出现HwHiUser@ecs-pytorch才可以。

下载项目到仓库:

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

基于Caffe ResNet-50网络实现图片分类(同步推理)

切换到华为用户:

根据下面的readme文件

新建放ResNet-50模型的文件夹:

mkdir caffee_model

下载模型文件:

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

将ResNet-50原始模型转换为适配昇腾AI处理器的离线模型(*.om文件)
切换到样例目录,执行:

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文件(在输出路径不用注明resnet50.om,会自动生成.om文件)

准备测试文件
切换到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

在data目录下生成两个文件

切换到“样例目录/data“目录下,执行transferPic.py脚本

python3 ../script/transferPic.py

这里会报错
ModuleNotFoundError: No module named 'PIL

正确执行命令为:

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“目录,执行如下命令生成编译文件。

cd build/intermediates/host

cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE


执行如下命令,生成的可执行文件main在“样例目录/out“目录下。

make


运行环境
切换到可执行文件main所在的目录

cd ../../../out/

给该目录下的main文件加执行权限。

chmod +x main

运行可执行文件

./main

出现以下信息代表执行成功

说明: 类别标签和类别的对应关系与训练模型时使用的数据集有关,本样例使用的模型是基于imagenet数据集进行训练的,您可以在互联网上查阅imagenet数据集的标签及类别的对应关系,例如,可单击Link查看。 当前屏显信息中的类别标识与类别的对应关系如下: “161”: [“basset”, “basset hound”]、 “267”: [“standard poodle”]。

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

日志中关键信息


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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