1 昇腾AI解决方案介绍

视频:课程地址

1.1 华为全栈全场景

1.2 Ascend系列处理器

310处理器用在 推理场景,910处理器用在 训练场景

1.3 Atlas系列产品

2 环境部署(Atlas200DK)

视频:课程地址

参考:Atlas200DK分设系列第一章–20.0.RC1版本安装指南

2.1 初见开发板

2.2 开发&运行环境搭建总览

2.2.1 安装ubuntu18.04

2.2.2 配置ubuntu环境

用户权限配置

普通用户安装开发套件,需要有sudo权限,所以首先需要给普通用户配置权限。

切换为root用户。
su root

给sudoer文件配置写权限,并打开该文件。
chmod u+w /etc/sudoers
vi /etc/sudoers

在该文件“ # User privilege specification”下面增加如下内容:

其中,ascend为开发环境种普通用户用户名,需要根据自己的环境修改。

完成后,执行以下命令取消“ /etc/sudoers”文件的写权限。

sudo chmod u-w /etc/sudoers

换源

参考:Ubuntu 18.04 换国内源

配置密码
sudo passwd root
su root

配置apt源:

cd /etc/apt
cp sources.list sources.list.bak
vi sources.list
或者   更改只读文件
sudo gedit  /etc/apt/sources.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
sudo apt-get update
sudo apt-get upgrade

配置pip源:

ctrl + h 显示 .pip文件夹

touch pip.conf

将如下内容填写到pip.conf文件中

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

安装环境依赖

安装相关apt依赖:

sudo apt-get install -y gcc make cmake unzip zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev pciutils net-tools g++-5-aarch64-linux-gnu

安装python环境:

下载python3.7.5源码包并解压。

wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar -zxvf Python-3.7.5.tgz

进入解压后的文件夹,执行配置、编译和安装命令。

cd Python-3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-shared
make -j8
sudo make install

执行以下命令将so拷贝到lib中,并设置软链接。

sudo cp /usr/local/python3.7.5/lib/libpython3.7m.so.1.0 /usr/lib
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5

执行以下命令,安装环境所需的相关pip依赖。

pip3.7.5 install attrs psutil decorator numpy protobuf==3.11.3 scipy sympy cffi grpcio grpcio-tools requests --user

安装其他

切换为root用户,并安装VIM。

su root
apt-get install vim

2.3 开发/运行环境部署手工方式

参考:Atlas 200 DK 系列 – 快速搭建开发环境

2.3.1 部署开发环境

安装toolkit开发工具包

如下图,下载开发环境所需要的两个toolkit包。

下载链接

将包放置到开发环境普通用户的$HOME目录下。

执行以下命令,给run包增加可执行权限。
chmod 755 \*.run

执行以下命令,安装toolkit包。

./Ascend-Toolkit-20.0.RC1-arm64-linux_gcc7.3.0.run --install
./Ascend-Toolkit-20.0.RC1-x86_64-linux_gcc7.3.0.run --install

安装mindstudio

下载链接

将压缩包放置到开发环境普通用户的$HOME目录下。并执行以下命令,安装Mindstudio。

cd $HOME
tar -zxvf mindstudio.tar.gz
cd MindStudio-ubuntu/bin
./Mindstudio.sh

注:运行过程中会有红字提示需要继续安装的软件包,安装完成后重新执行./Mindstudio运行即可

./Mindstudio.sh

2.3.1 部署运行环境

运行环境需要通过制作SD卡,将开发者板运行代码和系统程序烧写到开发者板上,从而搭建的。所以一切的起点就是安装SD卡。

注:安装SD卡需要在本地环境中操作,也就是以下步骤是在用来做开发环境的虚拟机环境中操作的

安装SD卡系统

  • 下载制卡需要的软件包

下载地址

  • 下载ubuntu-server 和 制卡脚本

在本地环境普通用户(以ascend用户为例)的$HOME目录下执行以下命令,下载tools仓代码。

如果没有安装git,执行安装git
sudo apt-get install git  git clone https://gitee.com/ascend/tools.git
执行以下命令,进入C73制卡目录。
cd $HOME/tools/makesd/for_1.7x.0.0/

执行以下命令下载ubuntu18.04-server-arm.iso镜像(版本最好和虚拟机桌面版本一致)。

wget http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ubuntu-18.04.5-server-arm64.iso

注:下载的 ubuntu-18.04.5-server-arm64.iso 可能显示404未连接,需要更改成已有的新版本

下载完成后,执行以下命令,给脚本和iso镜像加权限。
chmod 755 make_sd_card.py make_ubuntu_sd.sh ubuntu-18.04.4-server-arm64.iso

  • 执行如下命令安装相关纸卡需要的相关python依赖
    pip3 install pyyaml

  • 执行如下命令安装相关的apt依赖
    sudo apt-get install qemu-user-static binfmt-support python3-yaml gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

  • 将之前下载的制卡所需包放置到该目录(普通用户$HOME/tools/makesd/for_1.7x.0.0)下。

  • 将插有SD卡的读卡器连接Ubuntu服务器,制作SD卡:

执行以下命令,切换root用户,准备制卡。
su root

执行以下命令,执行脚本准备制卡
python3 make_sd_card.py local /dev/sdb
(说明:/dev/sdb 是SD卡的设备名,可以在root用户下执行fdisk -l查看。)

如图,制卡过程中,提示是否继续安装,输入Y
等待约7min,提示Make SD Card successfully!,则制卡成功。

  • 上电Atlas 200DK开发板。
    将制好的卡放入Atlas 200DK开发板,上电后连接Ubuntu服务器。
    注:开发板升级过程中会有两个灯闪烁,当四个灯常亮时即为升级成功,升级过程约5-10min

  • 切换为普通用户
    命令行中执行以下命令,退出root用户,切换为普通用户。
    exit

连接开发者板

开发板通过usb和虚拟机相连,执行以下命令可以查看到虚拟网卡。
ifconfig

ascend@ubuntu:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.158.134  netmask 255.255.255.0  broadcast 192.168.158.255inet6 fe80::636d:deb2:479e:8276  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:88:58:58  txqueuelen 1000  (Ethernet)RX packets 1740884  bytes 1922963470 (1.9 GB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 492977  bytes 494438610 (494.4 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens35u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet6 fe80::c806:82ff:febe:557a  prefixlen 64  scopeid 0x20<link>ether ca:06:82:be:55:7a  txqueuelen 1000  (Ethernet)RX packets 847  bytes 608643 (608.6 KB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 1532  bytes 713093 (713.0 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 194631  bytes 2433862852 (2.4 GB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 194631  bytes 2433862852 (2.4 GB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

其中ens35u1就是虚拟网卡。

配置虚拟网卡ip
由于通过USB连接时,开发板默认IP为192.168.1.2,所以这里我们只需要配置虚拟网卡ip为192.168.1.x即可。可按照如下命令进行netplan设置。

打开netplan的配置文件,按照以下格式进行配置填写。
vi /etc/netplan/01-network-manager-all.yaml

# Let NetworkManager manage all devices on this system
network:version: 2renderer: NetworkManagerethernets:ens35u1: #配置的网卡名称,使用ifconfig -a查看得到dhcp4: no #dhcp4关闭addresses: [192.168.1.223/8] #设置本机IP及掩码gateway4: 255.255.255.0 #设置网关nameservers:addresses: [114.114.114.114]

配置完成后执行以下命令,使配置生效。
netplan apply

执行以下命令切换回普通用户。
exit

如下图所示,再使用ifconfig查看,此时已经有ip了。

登录开发板
在普通用户下通过ssh指令,登录开发板(密码为Mind@123)。
ssh HwHiAiUser@192.168.1.2

将动态链接库路径 添加到 ldconfig 文件中。
切换到root用户下搜索 libascendcl.so 所在的路径,添加到vim mind_so.conf

su root
find / -name libascendcl.so
cd /etc/ld.so.conf.d
添加路径到此文件中
vim mind_so.conf
添加完成后,执行
ldconfig
执行以下命令,退出开发板。
exit

2.4 MindStudio基本使用

tpe算子

3 环境搭建验证

3.1 设置编译环境

打开Mind Studio,选择Classification(resnet50)。然后选择Finish,工程创建成功

MyAPP 目录结构如下所示:

├── 工程名
│ ├── .idea //IntelliJ IDEA自动创建的,用于存放项目的配置信息。
│ ├── build
│ │ ├──cmake //存放cmake依赖文件
│ ├── caffe_model
│ │ ├── resnet50.prototxt //resnet50网络的模型文件
│ ├── data
│ │ ├── dog1_1024_683.jpg //测试数据
│ │ ├── dog2_1024_683.jpg //测试数据
│ ├── inc
│ │ ├── model_process.h //声明模型处理相关函数的头文件
│ │ ├── sample_process.h //声明资源初始化/销毁相关函数的头文件
│ │ ├── utils.h //声明公共函数(例如:文件读取函数)的头文件
│ ├── script
│ │ ├── transferPic.py //将*.jpg转换为*.bin,同时将图片从1024*683的分辨率缩放为
224*224
│ ├── src
│ │ ├── acl.json //系统初始化的配置文件
│ │ ├── CMakeLists.txt //编译脚本
│ │ ├── main.cpp //主函数,图片分类功能的实现文件
│ │ ├── model_process.cpp //模型处理相关函数的实现文件
│ │ ├── sample_process.cpp //资源初始化/销毁相关函数的实现文
件│
│ ├── utils.cpp //公共函数(例如:文件读取函数)的实现文件
│ ├── .project //工程信息文件,包含工程类型、工程描述、运行目标设备类型、 ADK版本号等
│ ├── CMakeLists.txt //编译脚本,调用src目录下的CMakeLists文件
│ ├── 工程名.iml //IntelliJ IDEA自动创建的模块文件,用于Java应用开发,存储一些模块开
发相关的信息。

命令行中,执行以下命令,在普通用户家目录下执行以下命令下载权重文件。

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

3.2 模型转换

将原始网络模型转换为适配昇腾AI处理器的模型。

  • Model File选择当前工程的caffe_model目录下的resnet50.prototxt
  • Weight File选择刚才下载的权重文件。

  • Configure Input and Output页面中 “Input Type” 配置为FP16, “ Output
    Type”
    配置为FP32。

  • 关闭Data Pre-processing

  • Mindstudio加载转换好的om模型。

转换完成后,模型会生成在 $HOME/modelzoo/resnet50/device 目录下,此时在Mindstudio对应工程上点击鼠标右键,选择Add Model,并选择此目录下的resnet50模型即可。

此时,工程的model文件夹下就会有对应的om模型了。

3.3 添加图片文件

  • 命令行中,执行以下命令在普通用户下切换到工程所在目录。
    默认为“ ~/AscendProject/工程名/data”,请根据实际情况替换。
    cd ~/AscendProject/MyApp1/data

  • 执行transferPic.py脚本
    脚本是将*.jpg转换为*.bin,同时将图片从1024683的分辨率缩放为224224。在data目录下生成2个*.bin文件。*

python3.7.5 ../script/transferPic.py

  • 在Mind Studio工具界面,单击刷新工程目录的图标,刷新后,在工具界面的“ 工
    程名/data”目录下直接查看.bin文件。

3.4 编译和运行

编译

Mindstudio的工具栏中点击Build > Edit Build Configuration。选择Target OS 为Centos7.6。

之后点击Build > Build > Build Configuration,会在目录下生成build和out文件夹。

运行

Mindstudio配置开发板RC连接。
注:此时默认开发板已经连接到开发环境了
在Mind Studio工具的工具栏中找到Tools按钮,单机Device Manager
点击Device Manager界面右上方的 “+” 按钮,填写Host IP为开发者板ip(USB连接默认为192.168.1.2),点击OK。

单击 Run > Run ‘MyApp1’,如下图红框,可执行程序已经在开发者板执行,并且结果也打印在日志中。

昇腾Atlas200DK学习笔记(一)——环境部署相关推荐

  1. OGG学习笔记04-OGG复制部署快速参考

    OGG学习笔记04-OGG复制部署快速参考 源端:Oracle 10.2.0.5 RAC + ASM 节点1 Public IP地址:192.168.1.27 目标端:Oracle 10.2.0.5 ...

  2. Go学习笔记_环境搭建

    Go学习笔记_环境搭建 Go背景知识 go的特点(官网): Build fast, reliable, and efficient software at scale- Go is an open s ...

  3. 深度学习(二)theano学习笔记(1)环境搭建

    theano学习笔记(1)环境搭建 原文地址:http://blog.csdn.net/hjimce/article/details/46654229 作者:hjimce 搭建theano实属不易,因 ...

  4. CAS单点登录学习笔记二之部署CAS Server

    CAS Server 服务器部署 [b]简介[/b] CAS Server 是一套基于 Java 实现的服务,该服务以一个 Java Web Application 单独部署在与 servlet2.3 ...

  5. openCV2学习笔记---1.环境配置

    openCV2学习笔记-1.环境配置 openCV 是开源的计算机视觉代码库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成 ...

  6. Python学习笔记:Day15 部署Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Hadoop学习笔记-集群部署

    前期准备 使用三台主机,每台安装好JDK和Hadoop 参考:Hadoop学习笔记–单台安装 同步小技巧 scp–rsync–编写xsync scp是主机之间安全拷贝数据的工具,一般的语法为 scp ...

  8. STM32F103CUBE学习笔记 一 环境安装

    STM32F103CUBE学习笔记一 stm32cubemx安装 jre安装 stm32cubemx安装 stm32cubemx创建工程 准备工作 配置时钟 KEIL PACK安装 keil安装 st ...

  9. 深度学习TensorFlow生产环境部署(环境准备篇)

    最近在研究Tensorflow Serving生产环境部署,尤其是在做服务器GPU环境部署时,遇到了不少坑.特意总结一下,当做前车之鉴. 1 系统背景 系统是ubuntu16.04 ubuntu@ub ...

最新文章

  1. .Net Micro Framework研究—绘图
  2. extjs 获取id的值_extjs 获取Dom对象
  3. java用一张一元票换一分,java测试试卷一
  4. c mysql批量添加数据类型_mybatis学习之路----mysql批量新增数据
  5. 【主题演讲】探索云、视频会议,编解码的奥妙
  6. 从java里调用r jri的设置方法_从Java里调用R – JRI的设置方法
  7. 支持向量机器—SMO算法
  8. matlab余割平方方向图,基于余割平方赋形波束的宽带微带阵列天线设计
  9. html如何添加五角星/星星图案 - GitHub - octicons
  10. mysql常见错误及解决办法_mysql常见错误代码、原因及处理办法
  11. python快速排序最简单写法_面试官:来,这位精神小伙,简简单单写个快速排序吧...
  12. (转)web app 禁用手机浏览器缓存方法
  13. django之创建第11个项目-页面整合
  14. 主成分分析 与 因子分析
  15. 刚开始接触编程也能轻松写的计算器代码(VS2019)(c语言)
  16. response setHeader 设置下载中文文件名乱码问题
  17. SpringCloud快速上手
  18. C++快慢指针理解与应用
  19. 二、TIPTOP命名原则和目录配置—TIPTOP GP ERP二次开发新手教程
  20. Dev - C++ 安装(mac/windows)

热门文章

  1. [转]60个英文阅读网站强力推荐
  2. 团队管理应该注意的几点--------项目管理日志之1
  3. Flutter基础-(3)Widget之文本Text
  4. nova4android10,华为nova4支持NFC刷公交地铁吗 华为nova4有NFC功能吗
  5. linux下mq通道的命令,linux - 从mq客户端运行Linux / MQSC命令 - 堆栈内存溢出
  6. 回顾2020,喜悲交叉
  7. 在html中如何设置图片轮显,css中怎么让图片轮播?
  8. 西行漫记(7):再论语法糖
  9. #今日论文推荐# 速递:机器学习帮助构建人类肠道微生物群体感应网络
  10. 骨传导耳机伤耳朵吗、骨传导耳机适合适用的人群有哪些?