本次实验的视频链接如下:https://www.bilibili.com/video/BV1iA4y1f7o1/
本次实验在MindStudio上进行,请先按照
教程
配置环境,安装MindStudio。
MindStudio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,该IDE上功能很多,涵盖面广,可以进行包括网络模型训练、移植、应用开发、推理运行及自定义算子开发等多种任务。MindStudio除了具有工程管理、编译、调试、运行等一般普通功能外,还能进行性能分析,算子比对,可以有效提高工作人员的开发效率。除此之外,MIndStudio具有远端环境,运行任务在远端实现,对于近端的个人设备的要求不高,用户交互体验很好,可以让我们随时随地进行使用。
1、pytorch编译/安装介绍
- 1) 从gitee获取Pytorch源码。
git clone https://gitee.com/ascend/pytorch.git

如果clone命令失败,可以使用以下命令重新安装git。
apt update; apt install git
此外,也可以在Ascend仓库中查看Pytorch源码,链接为:https://gitee.com/ascend/pytorch
- 2) 根据需要切换分支并获取PyTorch源代码。
| AscendPytorch版本 | CANN版本 | 支持PyTorch版本 |
|---|---|---|
| 2.0.2 | CANN 5.0.2 | 1.5.0 |
| 2.0.3 | CANN 5.0.3 | 1.5.0/1.8.1(1.8.1仅支持resnet50模型) |
| 2.0.4 | CANN 5.0.4 | 1.5.0/1.8.1(1.8.1仅支持resnet50模型) |
从上表来看,我们的CANN版本是5.0.4,安装的Pytorch版本为1.5.0。因此切换到2.0.4的分支,具体有哪些分支可在
gitee
源码查看。
分别执行以下命令:
cd pytorch
git checkout -b 2.0.4.tr5 remotes/origin/2.0.4.tr5
git clone -b v1.5.0 --depth=1 https://github.com/pytorch/pytorch.git

- 3)获取Pytorch被动依赖代码
分别运行以下命令
cd pytorch
git submodule sync
git submodule update --init --recursive
获取代码时,因为代码是位于GitHub上,受网络影响,获取时间可能较长,并且在获取过程中可能报错,如:

出现这种情况时,我们需要删除该报错路径的文件,重新运行后面两条代码,直到执行git submodule update --init --recursive不再报错为止。如下图没有任何报错信息:

PS:重新运行时需要将报错信息的文件夹删除再重新运行,删除时要看清楚完整的文件夹路径,比如说报错的路径“/third_party/benchmark/”有完整路径可能是在“pytorch/third_party/onnx/third_party/benchmark/”,不要与“pytorch/third_party/benchmark/”搞混。
PS:如果一直有某个包克隆失败,我们可以手动添加。如third_party/QNNPACK/克隆失败,我们先在GitHub上搜索QNNPACK,然后再手动下载zip文件,再上传至服务器相关目录并解压。或者使用gitee将其导入,再从gitee中克隆。
- 4)编译生成适配昇腾AI处理器的PyTorch安装包
(1) 回退一级目录,进入pytorch/scrips文件夹下,执行转换脚本,生成适配昇腾AI处理器的全量代码。运行截图如下:
cd ../scripts
bash gen.sh

(2) 进入pytorch/pytorch目录下,安装依赖库
cd ../pytorch
pip3 install -r requirements.txt
(3) 运行build.sh,编译生成pytorch的二进制安装包
bash build.sh --python=3.7
编译成功如下图,并可以在路径./pytorch/pytorch/dist/下找到对应的whl文件。如果失败,请重新检查第3)步-获取Pytorch被动依赖代码的操作。

- 5)安装Pytorch
进入生成的whl包的目录dist下,使用pip命令进行安装
cd dist
pip3 install --upgrade torch-1.5.0+ascend.post3-cp37-cp37m-linux_aarch64.whl

PS:因为之前服务器环境存在pytorch,所以截图中先卸载后安装。
- 6)配置环境变量
安装完软件包后,需要配置环境变量才能正常使用昇腾PyTorch
进入pytorch/pytorch目录下,运行env.sh
cd ../
source env.sh
这样,我们的pytorch就安装完毕了。
2、 模型简介
本次实验我们的目标是在MindStudio上使用ResNet进行图像分类任务。ResNet曾在ILSVRC2015比赛中取得冠军,在图像分类上具有很大的潜力。 ResNet的主要思想是在网络中增加了直连通道,使得原始输入信息能够直接传输到后面的层中,ResNet的残差块的结构如下图所示。

ResNet会重复将残差块串联,形成多层网络。一般常见的ResNet根据层数的大小有ResNet-18,ResNet-34,ResNet-50,ResNet-101等等。后面的数字代表网络的层数。在本次实验中,我们选用的数据集是tiny-imagenet。该数据集是斯坦福大学提供的图像分类数据集,其中包含200个类别,每个类别包含500张训练图像,50张验证图像及50张测试图像。可以在此
链接
下载。因为数据集不是很大,这里我们选用的模型是较小的ResNet-18。
3、训练工程创建,工程功能以及相关菜单介绍
3.1 训练过程创建
- 打开MindStudio,点击New Project,进入新建工程界面。
- 选择Ascend Training。填入项目名。首次新建训练工程时,需要配置CANN的版本。点击install。



3693

被折叠的 条评论
为什么被折叠?



