【2023 · CANN训练营第一季】昇腾AI入门课(Pytorch)——昇腾AI入门课(下)
图片分类应用开发
![](https://pic3.zhimg.com/80/v2-201abc2f8db87191d286145ebba9f5e6_1440w.webp)
第3节 云服务器环境申请&AI应用体验
第1单元 本节学习目标
了解如何使用代金券申请云环境,并在云环境中快速体验一个样例的运行。
第2单元 申请云环境
操作视频 1.获取华为云帐号名以及项目 ID ,以便课程接口人给您推送云环境镜像。 2.使用代金券购买 ECS 云环境,以便获取到编译、运行应用的环境。 购买 ECS 云环境成功后,您可以获取到一个服务器 IP 地址, SSH 方式远程登录到该服务器上,您可以接着快速体验样例,参见第3单元快速体验。 获取华为账号和项目 ID : 1.网页登录 https://www.huaweicloud.com/ 进入到网页后,点击账号中心,账号名如下:
![](https://pic2.zhimg.com/80/v2-360c722192b574dfac4eddd9f7afd8e9_1440w.webp)
然后点击我的凭证:
![](https://pic2.zhimg.com/80/v2-76a5c79b5734e032b479ee3ec5e1125d_1440w.webp)
账号ID如下:
![](https://pic3.zhimg.com/80/v2-a34f6afc7edba5e15f82a464a110974e_1440w.webp)
有了华为云账号和项目ID之后,就可以填以下链接申请镜像: 镜像申请 申请好了镜像之后,可以填以下链接,申请代金券: 代金券申请 如果在以下页面看到代金券和镜像发放,就可以创建云服务器了:
![](https://pic4.zhimg.com/80/v2-f28da40fdf530ea1d4bbe0e9b205df97_1440w.webp)
![](https://pic4.zhimg.com/80/v2-8dffe3011ddbf56e8044e4aa1c1b292f_1440w.webp)
![](https://pic2.zhimg.com/80/v2-b951260f9cc904b300fc06843b0ab57d_1440w.webp)
使用代金券购买ECS:
![](https://pic3.zhimg.com/80/v2-4d8c952aa7118e99dda8f5d06eb94ee2_1440w.webp)
![](https://pic2.zhimg.com/80/v2-bc56282e7a6b588794004b6ce1354ac1_1440w.webp)
![](https://pic4.zhimg.com/80/v2-ed3e5230851f7b4e55342a2fd0ed64c3_1440w.webp)
![](https://pic3.zhimg.com/80/v2-f57b7b9e4f15ab00f2c864760937eb0a_1440w.webp)
![](https://pic4.zhimg.com/80/v2-c40f93a6b883a35a4d3e7b26bcd4be8b_1440w.webp)
最后点击同意,即可完成购买。 在云服务器可以看到刚刚购买的服务器:
![](https://pic2.zhimg.com/80/v2-a695dc2e28c77a9afb13d903572422b9_1440w.webp)
第4节 图片分类应用应用开发过程精讲
可以将服务器与本地的IDE连接,我这里连接的是VSCode:
注意:在连接到VSCode之前,要注意先把弹性云服务器的远程登录打开
![](https://pic1.zhimg.com/80/v2-8ecabacb3aabdd8de827fb08c9e809d0_1440w.webp)
复制弹性公网IP地址:
![](https://pic2.zhimg.com/80/v2-882ce019430796ec1e8feda72b41caa1_1440w.webp)
打开VSCode: 点击远程连接扩展,如果没有这个扩展,可以在VSCode 扩展插件里下载Remote - SSH:
![](https://pic1.zhimg.com/80/v2-b8aa43a506f887e0ff3a0dd98e5cc740_1440w.webp)
输入链接指令:ssh root@你的公网IP地址
![](https://pic4.zhimg.com/80/v2-611ee1829e68f9012cb713ea8c747e17_1440w.webp)
即可链接成功。 修改默认用户密码:
passwd HwHiAiUser
![](https://pic1.zhimg.com/80/v2-abcc6c0c0c7422f431a615aa114bb5b4_1440w.webp)
切换用户:
su - HwHiAiUser
使用HwHiAiUser创建一个新的ssh连接,密码为刚刚设置的。
![](https://pic2.zhimg.com/80/v2-c300085279ed36d4b4d8d2a54e5297d5_1440w.webp)
新建终端就是这样的页面:
![](https://pic1.zhimg.com/80/v2-45528705027d6390885ddb87d25db438_1440w.webp)
切换用户并查看文件:
![](https://pic1.zhimg.com/80/v2-5da8d7fe2b18167a2411f4b7f345f510_1440w.webp)
编译及运行应用 转换模型 改用bash
sudo dpkg-reconfigure dash
选择no
![](https://pic1.zhimg.com/80/v2-bfd53e79e4d1a78bde08f1a5754541ac_1440w.webp)
![](https://pic2.zhimg.com/80/v2-713826b6bb12f41b5f4a9dfc42f6a711_1440w.webp)
ls -l `which sh`
要注意这里的但引号是英文输入法下的Tab键上面的引号,输入其他的可能会报错,得到/bin/sh - > bash 说明正确。
![](https://pic4.zhimg.com/80/v2-20cf9a747f4bca35bd60779898e2e83f_1440w.webp)
再次切换用户
su - HwHiAiUser
一定要出现HwHiUser@ecs-pytorch
才可以。
![](https://pic4.zhimg.com/80/v2-2104d1a09c235f5a084f516a223be3bf_1440w.webp)
下载项目到仓库:
git clone https://gitee.com/ascend/samples.git
![](https://pic3.zhimg.com/80/v2-28ed6f69e23676914ae2a4c7ef5ad99e_1440w.webp)
基于Caffe ResNet-50网络实现图片分类(同步推理)
切换到华为用户:
![](https://pic3.zhimg.com/80/v2-000af9cb121fbb26cd255cfc0470c9ce_1440w.webp)
根据下面的readme文件
![](https://pic3.zhimg.com/80/v2-9ba2c7724f322946312e32c64495506e_1440w.webp)
新建放ResNet-50模型的文件夹:
mkdir caffee_model
下载模型文件:
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.prototxt
![](https://pic1.zhimg.com/80/v2-e05eb3d79279d9a315cc445f4735fbb4_1440w.webp)
下载权重文件:
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
![](https://pic1.zhimg.com/80/v2-3cc43f094c69a1fd7f684eee34b03a0c_1440w.webp)
ATC启动成功:
![](https://pic2.zhimg.com/80/v2-93d147b8c9e447026700e162e00e5335_1440w.webp)
在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目录下生成两个文件
![](https://pic1.zhimg.com/80/v2-95591cfc6dd7867a86455bab263aafbc_1440w.webp)
切换到“样例目录/data“目录下,执行transferPic.py脚本
python3 ../script/transferPic.py
这里会报错 ModuleNotFoundError: No module named 'PIL
正确执行命令为:
python3.6 ../script/transferPic.py
![](https://pic4.zhimg.com/80/v2-02625390ad93b99f43bb96c1813582db_1440w.webp)
编译运行 设置环境变量
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
![](https://pic2.zhimg.com/80/v2-230df17d5fd4d3414571dd49a2fd01d5_1440w.webp)
执行如下命令,生成的可执行文件main在“样例目录/out“目录下。
make
![](https://pic2.zhimg.com/80/v2-2012db4bbc18f8421a9ed013d3da9661_1440w.webp)
运行环境 切换到可执行文件main所在的目录
cd ../../../out/
给该目录下的main文件加执行权限。
chmod +x main
运行可执行文件
./main
出现以下信息代表执行成功
![](https://pic1.zhimg.com/80/v2-9d03d52190d7a35e5104c50a066f93ac_1440w.webp)
说明: 类别标签和类别的对应关系与训练模型时使用的数据集有关,本样例使用的模型是基于imagenet数据集进行训练的,您可以在互联网上查阅imagenet数据集的标签及类别的对应关系,例如,可单击Link查看。 当前屏显信息中的类别标识与类别的对应关系如下: "161": ["basset", "basset hound"]、 "267": ["standard poodle"]。
获取运行日志 日志目录默认为"CANN软件安装目录/ascend/log",应用运行之后,可在该目录下查阅日志。 日志参考
日志中关键信息
![](https://pic2.zhimg.com/80/v2-92d685971914a429ba0028b387b2d015_1440w.webp)
- 点赞
- 收藏
- 关注作者
评论(0)