赞
踩
在atlas200dk(ascend310芯片)上搭建python离线推理环境,从制作SD卡镜像到运行python离线推理demo全流程。
拥有以太网直连可上网环境。
镜像包内必备两个文件:npu-driver和ubuntu镜像,前者是NPU驱动相关文件,后者是系统镜像。
本流程中使用的制卡镜像包百度网盘链接如下:
链接:https://pan.baidu.com/s/1FFhFiB7LOeDiXmxEg7oHwg?pwd=3f7y
提取码:3f7y
–来自百度网盘超级会员V6的分享
此镜像包中,打开了ascend310的uart0串口,可以通过串口监视atlas系统是否正常启动。
具体制卡流程参见Atlas200 DK(3000型号)启动镜像制卡步骤记录。
镜像中atlas以太网口的默认设置是静态IP,IP地址为192.168.0.2。为了后续可以联网安装环境,需要将以太网口设置为DHCP。
配置以太网口是通过uart0串口进行的,因此要确保打开了uart0。
su #切换为root用户
cd /etc/netplan
vi 01-netcfg.yaml
将文档中eth0的dhcp4设置为yes,注释掉addresses、gateway4、nameservers、addresses。修改后的yaml文件见下图。
修改后wq!保存退出,使用reboot命令重启atlas。
重启系统后,将atlas接入可上网的路由器,使用ifconfig命令查看路由器分配给atlas的IP地址。
使用ping远程ping一下百度的网站,如果可以ping通,则此时atlas已经具备联网状态。
su #切换为root用户
cd /etc/apt
cp sources.list sources.list.backup #备份一下原来的安装源
vi sources.list
将sources.list中的源更换为国内源,本流程中使用的是清华源,ubuntu18.04版本。**注意,因为atlas200是aarch64架构,所以要使用arm源。**更换完成后,将清华源中所有的https改为http,使用wq!保存退出。
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
使用如下命令完成apt源更新和软件包升级。更新完成后,atlas具备了apt在线安装条件。
su #切换root用户
apt update
apt upgrade
去昇腾官网下载NNRT离线推理引擎包社区版,下载地址:https://www.hiascend.com/software/cann/community
本流程下载的软件包名称为:Ascend-cann-nnrt_6.0.0.alpha006_linux-aarch64.run。
下载完成后,使用SCP命令将软件包拷贝到开发板上。安装nnrt软件包时,分别使用root用户和HwHiAiUser用户安装一次。
具体安装命令如下:
su # 切换root用户
./Ascend-cann-nnrt_6.0.0.alpha006_linux-aarch64.run --install
# 安装完成后
vi ~/.bashrc # 注意,此时打开的是root用户的bashrc
在文件最末尾加入以下内容:
. /usr/local/Ascend/nnrt/set_env.sh
保存退出,使用source命令执行一下bashrc,使设置生效。
source ~/.bashrc
切换回普通用户,重新执行上述安装、设置环境变量过程。安装完后,可删除.run安装包。
注意root用户和普通用户的默认安装位置是不同的,配置环境变量时要使用对应的安装路径。
安装指定版本的python,需要从源码开始安装。
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz #下载python3.7.5源码
安装编译Python3.7.5的必要依赖。
su #切换root用户
apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 liblapack-dev
# 比官方教程多了一个liblapack-dev
编译安装Python3.7.5
cd Python-3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared --with-ssl
# 比官方教程多了一个--with-ssl,如果这里不对ssl进行配置,后面使用pip安装python库时会提醒没有ssl模组的错误
make
make install
Python编译安装完成后,设置Python的环境变量,分别为root和普通用户设置,在相应的.bashrc文件添加以下内容:
#用于设置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
- 1
- 2
- 3
- 4
安装完成后,使用python3 --version和pip3 --version命令检查是否成功安装。
首先更换pip源为国内源,这样下载包的速度可以提高。本流程使用的pip源为华为源。
# 当前用户为HwHiAiUser
mkdir ~/.pip
cd ~/.pip
vi pip.conf
在打开的文件中写入如下内容:
[global] #以华为源为例,请根据实际情况进行替换。 index-url = https://mirrors.huaweicloud.com/repository/pypi/simple trusted-host = mirrors.huaweicloud.com timeout = 120
- 1
- 2
- 3
- 4
- 5
如果配置其它源,将index-url更改为对应的源链接即可。
更换完成后保存退出,开始使用pip3安装依赖包。
# 当前用户为HwHiAiUser
# 建议按本流程命令安装pip包
pip3 install attrs decorator sympy cffi pyyaml pathlib2 psutil protobuf requests absl-py --user #使用非root用户安装,添加--user选项避免权限问题
# numpy scipy两个库比较大,安装时间长,单独安装,防止中途失败导致其它库重新安装
pip3 install numpy --user
pip3 install scipy --user
# 安装opencv-python(否则报no module name cv2)
# 先安装pip
su #切换用户
apt install python-pip
# 升级完pip再安装opencv-python,直接用pip3安装opencv总是报cmake版本过低的问题,升级一下pip再安装opencv,好像就解决了。
pip3 install --upgrade pip
pip3 install opencv-python
样例的环境部署和运行步骤在ascend的代码仓库有完整的readme描述,这里不再重复。
本流程运行的demo为YOLOV4_coco_detection_car_picture,gitee链接:https://gitee.com/ascend/samples/tree/master/python/level2_simple_inference/2_object_detection/YOLOV4_coco_detection_car_picture
运行成功的效果见下图,即可验证具备了运行离线推理模型的环境条件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。