https://www.bilibili.com/video/BV1UK411U7x4/?spm_id_from=333.999.0.0&vd_source=0ae52993ebd370d1051f9dd886e17add
MindStudio提供您在AI开发所需的一站式开发环境,支持模型开发、算子开发以及应用开发三个主流程中的开发任务。依靠模型可视化、算力测试、IDE本地仿真调试等功能,MindStudio能够帮助您在一个工具上就能高效便捷地完成AI应用开发。MindStudio采用了插件化扩展机制,开发者可以通过开发插件来扩展已有功能。
MindStudio具有如下功能:
PyTorch GPU2Ascend工具可将基于GPU的训练脚本转换为支持NPU的脚本,大幅度提高脚本迁移速度,降低开发者的工作量。本样例指导可以让开发者快速体验PyTorch GPU2Ascend工具的迁移效率。原基于GPU的训练脚本转换成功后可在NPU上运行。PyTorch GPU2Ascend工具作用概述如下:
NPU(Neural network Processing Unit), 即神经网络处理器。神经网络处理器(NPU)采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。NPU处理器专门为物联网人工智能而设计,用于加速神经网络的运算,解决传统芯片在神经网络运算时效率低下的问题。
NPU是AI算力的发展趋势,但是目前训练和在线推理脚本大多还基于GPU。由于NPU与GPU的架构差异,基于GPU的训练和在线推理脚本不能直接在NPU上使用,需要迁移为支持NPU的脚本后才能使用。为了能让这些脚本在NPU架构上进行训练和推理,Mindstudio为我们提供了进行模型转换的接口,即将基于GPU的脚本经过转换后在华为昇腾系列(HUAWEI Ascend)AI处理器上能进行训练和推理。
进行模型转换前需要配置好本地环境和远端环境。本地环境为windows环境,而远端环境为linux服务器。
Linux服务器上需安装部署好对应固件与驱动、Ascend-cann-toolkit开发套件包(参考可参考《CANN 软件安装指南》的“安装开发环境”章节),并配置好torch1.5.0。
获取torch1.5.0二进制包。 用户可参考昇腾官网中的《pytorch1.5.0安装指南》进行安装,但由于安装过程中的网络限制,会导致此种方式安装过程较慢。因此提供另一种简便安装方式,用户可先在百度网盘(链接:https://pan.baidu.com/s/1I_q6RptnZCagPqzTucG0tg 提取码:69js)下载torch1.5.0的二进制包,并将包上传至linux服务器任意路径。
**安装torch1.5.0二进制包。**进入二进制包存放路径,在命令行输入pip install + 包名 进行安装
因为之前安装过pytorch,可以看到我们是先卸载再安装
**配置环境变量。**首先以运行用户登录,在任意目录下执行vi ~/.bashrc命令,打开.bashrc文件,在文件最后一行后面添加以下内容(以非root用户的默认安装路径为例)。
然后执行:wq!命令保存文件并退出,最后执行source ~/.bashrc命令使其立即生效。
本地环境选用Windows10 x86_64操作系统,需在本地环境即windows服务器上安装好mindstudio,本案例指导以5.0.RC2Windows为例:
步骤一 下载安装包
进入官网下载MindStudio 5.0.RC2Windows版本,下载免安装压缩版,解压后进入bin目录可直接运行
步骤二 运行程序启动文件
下载完成后,将文件进行解压,双击解压后文件,并进入bin目录,双击MindStudio64.exe
步骤三 导入配置
选择Do not import settings
本样例选择resnet50模型,数据集为cifar100(无需提前准备,训练时可自动下载)。首先点击仓库地址进入代码仓,复制代码下载地址
利用git克隆代码,在本地存放代码的路径右击Git Bash Here,输入命令git clone +下载地址,下载成功后如下图所示:
本案例指导以MindStudio_5.0.RC2_win为例。
步骤一 新建工程
若首次登录MindStudio:单击New Project,如下图所示:
非首次登录MindStudio:在顶部菜单栏中选择File > New > Project…,如下图所示:
步骤二 创建PyTorch训练工程
在New Project窗口中,选择Ascend Training
然后输入训练工程名称
点击Change弹出setting界面
点击+号图标弹出SSH配置界面,输入linux服务器的ip、端口号、用户名与密码,如下图所示:
可以点击Test Connection进行服务器连接测试,如能按下图显示,则说明连接成功
配置Remote CANN location。该参数需填入ascend-toolkit在服务器上的路径地址。在这里,我们toolkit的路径为/usr/local/Ascend/ascend-toolkit/5.1.RC2。点击finish进行配置。初次配置时间稍长,请耐心等待。
配置完成后,会自动跳回创建昇腾训练工程界面,然后根据情况配置自己的工程存放路径
点击Next,选择Pytorch Project,然后点击finish
工程创建完成后如下图所示:
配置Module SDK,便于编码。右键点击项目名,选择Open Module Settings。因为我们的模型任务都是基于Python编程的,本机环境也是Python3.7.5,因此我们选择Python 3.7
迁移前需安装好如下必要的依赖包:
pip3 install pandas #pandas版本号需大于或等于1.2.4
pip3 install libcst
首先点击顶部菜单栏PyTorch GPU2Ascend按钮,出现如下界面:
注意:训练前远端环境需安装好 PyTorch1.5.0 以及必要的依赖包
为保证后续训练能够顺利跑通,可先注释掉训练脚本(train.py)中引用到tensorboard的相关代码(以下行数仅为参考,请以实际所在行数为准)。
第23行
第48~52行
第63行
第71行
第113~115行
第171、172和176行
第228行
步骤1 运行参数配置
单击菜单栏“Run > Edit Configurations…”,会弹出运行参数配置界面。选择Remote Run,其中Deployment的配置已经在创建PyTorch训练工程的时候完成,因此会默认选择配置好的数据。Executable为训练工程中的执行入口文件,即启动训练的文件,注意不要选错,然后按要求配置好运行参数。其中参数设置如下图所示。最后单击“OK”即可。
其中,各参数功能如下:
libhccl.so:cannot open shard object file…
如果遇到如图所示问题,应该考虑是否成功配置好linux服务器上的环境,特别是有没有按要求成功修改配置文件,具体操作见本指南第二节远端环境配置中修改配置文件部分。
如果遇到其他上述步骤中未能出现的错误,欢迎大家到昇腾论坛(进入昇腾论坛_开发者论坛-华为云论坛 (huaweicloud.com),选择开发者选项,点击进入昇腾论坛或者昇腾)中提出自己的问题在这里有很多技术大拿可以解决你的问题。或者也可以访问昇腾博客,搜索他人的独到见解。