幼儿园级别昇腾环境搭建教程--超级详细

网友投稿 657 2022-05-30

昇腾CANN训练营-应用营第一讲——开发&运行环境部署

课后作业

by 茜茜的哥哥

我是在B站上看老谭的视频

https://www.bilibili.com/video/BV1m64y1D7Q1

老谭长帅了呀,比之前的视频教程更有活力了,点个赞!

因为之前看过一遍视频,所以总结一下任务如下:

在华为云上买一个昇腾的ubuntu服务器

在服务器上搭建昇腾的运行环境

在服务器上搭建昇腾的开发环境

在服务器上运行一个示例,并截图

第一步:买虚拟机

登录à控制面板,购买一个ECS(Elastic Cloud Server)中文意思是 弹性云服务器,北京四的地域就行。

上述流程完成后,等待一段时间,系统创建完成后,在ECS菜单中能够看到自己的服务器了

第二步,下载部署所需要的软件

打开网址:https://ascend.huawei.com/

首先下载驱动

幼儿园级别的昇腾环境搭建教程--超级详细

文件名字:A300-3010-npu-driver_20.2.0_ubuntu18.04-x86_64.run

接下来下载软件平台CANN

软件的名字:Ascend-cann-toolkit_3.3.0.alpha001_linux-x86_64.run, Ascend-cann-nnrt_3.3.0.alpha001_linux-x86_64.run

最后在下载可视化IDE Mindstudio

文件名:MindStudio_2.0.0-beta3_linux.tar

最后下载的文件如下图:

第三步:登录服务器进行安装操作

采用VNC登录

点击登录后,界面如下

这里登录采用第一步购买服务器时候设置服务器的root账户和密码

在接下来的使用过程中,我们不能使用root账户进行操作,需要使用华为的特定账户:HwHiAiUser 这个账户

在控制台中找到这个账户:cat /etc/passwd

执行修改密码的指令: passwd HwHiAiUser

接下来就是修改一下HwHiAiUser 这个用户的bin目录sh,不要问为什么,老谭都这么说了,那就改一下

执行 vim /etc/passwd

关于VIM指令,这个就不写了

因为用这个网页版的指令界面实在是不太方便,所以接下来可以使用远程SSH工具

我也建议使用MobaXterm 简单,好用,集成度高,当然你要是对什么Xshell啥工具情有独钟,也可以使用

服务器的ip可以在,服务器详情中进行查找

连接完成后,我们可以把第二步下载的软件,上传到服务器

这里我们可以直接用MobaXterm来操作

新建一个file文件夹

然后选择文件进行上传

上传文件的时间可能会比较长,大家最好是找个好点的网络,网络实在是不行的,建议,花钱买几个G的手机流量,开热点进行操作

上传的过程中,我们对服务器进行安装依赖文件的操作,跟普通linux环境差不多,先改软件源

切换到root用户,到/etc./apt目录下,对source.list文件进行修改,修改前记得备份

使用>指令清空文件

再把国内源复制进去,保存

这里我采用阿里的源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

保存好以后,执行指令 apt-get update 用来对源进行更新

接下里对CANN软件的安装,我们需要借助到安装文档

找到环境依赖的安装包

安装指令: sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev libbz2-dev libsqlite3-dev libssl-dev libxslt1-dev libffi-dev unzip pciutils net-tools libncursesw5-dev

安装效果如下:

这时候理论上100%会出来报错

这时候不要慌,你仔细一看都是些python的包没有安装而已

使用apt-get install python3.7 不要问为什么是3.7,华为目前都基于python 3.7.5的环境

然后,再执行一次依赖安装的指令,就会完美安装通过

我们继续配置一下python的软连接

指令:

sudo ln -s /usr/local/python3.7.5/bin/python3/usr/local/python3.7.5/bin/python3.7.5

sudo ln -s /usr/local/python3.7.5/bin/pip3/usr/local/python3.7.5/bin/pip3.7.5

下一步,我们开始安装python的依赖,这里特别注意需要,退回到HwHiAiUser账户的权限下进行

对于python,我们更换pip源,需要明确当前目录是home目录

我们采用豆瓣的pip源

[global]

index-url = http://pypi.douban.com/simple

[install]

trusted-host = pypi.douban.com

创建pip.conf

接下来配置python的环境变量

#用于设置python3.7.5库文件路径

export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH

#如果用户环境存在多个python3版本,则指定使用python3.7.5版本

export PATH=/usr/local/python3.7.5/bin:$PATH

指令:vim .bashrc

拉到最后面

保存退出后,执行source指令 使其生效

之后安装pip包

我把指令已经精简,直接使用即可

pip3.7.5 install attrs numpy decorator sympy==1.4 cffi==1.12.3 pyyaml pathlib2 psutil protobuf scipy requests xlrd==1.2.0 –user

第四步,软件安装

首先要确认一下,四个软件包是否已经上传到目录了

驱动和工具赋予运行权限

可以看到,权限已经发生了变化,从-rw-rw-r—变为了 -rwxrwxr-x

这时候,我们需要切换至root权限进行安装

首先安装驱动: A300-3010-npu-driver_20.2.0_ubuntu18.04-x86_64.run

指令:./A300-3010-npu-driver_20.2.0_ubuntu18.04-x86_64.run –full

安装成功后,需要重启,rboot

重启后,我们继续安装nnrt:Ascend-cann-nnrt_3.3.0.alpha001_linux-x86_64.run

执行指令:./Ascend-cann-nnrt_3.3.0.alpha001_linux-x86_64.run –install

安装完成后会有环境变量缺失的问题

对变量文件进行修改,我把修改好的放在下面

#用于设置python3.7.5库文件路径

export LD_LIBRARY_PATH=/home/HwHiAiUser/Ascend/nnrt/latest/acllib/lib64:/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH

#如果用户环境存在多个python3版本,则指定使用python3.7.5版本

export PATH=/usr/local/python3.7.5/bin:$PATH

export PYTHONPATH=/home/HwHiAiUser/Ascend/nnrt/latest/pyACL/python/site-packages/acl:${PYTHONPATH}

export ASCEND_AICPU_PATH=/home/HwHiAiUser/Ascend/nnrt/latest:${ASCEND_AICPU_PATH}

记得保存完成之后,执行source指令生效

再下来继续安装toolkit:Ascend-cann-toolkit_3.3.0.alpha001_linux-x86_64.run

执行指令:./ Ascend-cann-toolkit_3.3.0.alpha001_linux-x86_64.run –install

安装完成后会有很多环境变量要求出来,不要理会,生成个文件保存一下,以后用再说

最后安装IDE mindspore,其实只需要解压即可

执行指令:tar zxvf MindStudio_2.0.0-beta3_linux.tar.gz

接下来运行mindspore

进入mindspore的bin目录,直接执行sh文件

基本上肯定会报错,不要慌,提有提示,可以直接执行apt指令

apt-get -y install xterm firefox xdg-utils openjdk-8-jdk fonts-droid-fallback fonts-wqy-zenhei fonts-wqy-microhei fonts-arphic-ukai fonts-arphic-uming gnome-keyring  && /usr/local/python3.7.5/bin/pip3 install –user

记得再root权限下执行

完成后,推出root权限,重新运行mindspore

继续报错,再执行依赖安装

/usr/local/python3.7.5/bin/pip3 install --user  coverage gnureadline pylint matplotlib pandas absl-py

安装完成后,再次运行mindspore

点击OK 首次启动mindspore 注意,这里网速一定要快

按图所示,选择toolkit版本,老谭的网速是真快,我100M光纤就没他这么顺滑

接下来创建应用

新建完成后是一个resnet50的demo工程

因为这是一个caffe的模型,所以我们需要去下载网络结构文件和权重文件

在readme的189行有说明,我复制下来,直接使用

https://gitee.com/HuaweiAscend/models/tree/master/computer_vision/classification/resnet50

打开这个地址,可以看到prototxt文件

打开文件,复制下载链接

https://gitee.com/HuaweiAscend/models/raw/master/computer_vision/classification/resnet50/resnet50.prototxt

然后我们使用IDE的terminal工具,下载这个文件在服务器上

要新建一个文件夹models,具体名字随意

然后继续下载预训练模型

我贴出地址,直接使用

https://obs-model-ascend.obs.cn-east-2.myhuaweicloud.com/resnet50/resnet50.caffemodel

下载完成后进行模型转换,因为之前是caffe的模型,mindspore直接用不了

接下来就是下一步一下步,直到finish, 等待转换完成

下载测试数据,链接如下:

https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg

https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg

当然,其实你可以自己找点别的图片

我自己找了一张

https://z3.ax1x.com/2021/03/31/cA7xOJ.jpg

图片下载到data文件夹中

改个名字,数据名字也要一体化嘛

修改代码

加载模型到工程中,右键工程目录

操作之后,目录会多出一个model文件夹,表示加载好了

图片预处理,在terminal栏中,执行:python3.7.5 ../script/transferPic.py

一切准备就绪,编译应用

编译完成后,在out目录中就有生成应用了

好了,到这里就剩下最后一步,把这个应用跑起来

最后看结果

报错了,是不是脑子嗡嗡的,花了这么久时间,走到最后一步,你给我报错,是不是想撞墙,不要在意这些细节,仔细看看说的是啥,就是so库找不到呗

研究了半天的bashrc文件,没写错了啊,实在是找不到原因,只能使用必杀技,重启大法

嘿,他居然解决了!!!!!!

好啦,第一课完成,删除服务器,免得后续扣费哦!!!!

Python 昇腾

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python中的内置函数【生长吧!Python】
下一篇:Excel中如何找出两列数据中不重复的记录
相关文章