概述
文章目录
- 1.简单介绍
- 用户与密码
- 2.改系统
- -安卓改Linux避坑
- 3.换源
- -备份官方源
- -换国内源
- --清华源:
- --华为源(据说很快):
- -更新软件列表和升级
- 4.文件传输
- -U盘传输文件
- -通过XFTP传输
- 5.远程连接
- 6.安装Mini-forge
- 7.编译安装MNN
- -编译推理部分
- -编译训练部分
- -编译转换部分
- -姿态检测Demo
- 8.安装MNN Python API
- 9.安装TensorFlow 2.X
- 10.安装TensorFLow Lite Python API
- 11.安装Pytorch和Torchvision
1.简单介绍
官方文档地址:http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4/zh
用户与密码
普通用户
用户名: pi
密码: pi
root用户
用户名: root
密码: fa
2.改系统
默认发来是Android系统,板子支持Linux16和18的系统,分别是Lubuntu16.04和友善定制friendlydesktop18.04系统。
-安卓改Linux避坑
- AdnroidTools工具配置问题
第一坑是,下载官方的AdnroidTools工具,按照教程在AdnroidTools工具中配置烧录选项,发现没有rootfs和userdata选项,这两项可以手动添加,可是很麻烦,而且容易出错。实际上,下载来的系统压缩包解压之后的文件夹中包含的有配置好的AdnroidTools,以管理员身份运行可直接烧录,无需额外配置。 - 烧写之后显示器黑屏
按照第二坑是官方文档使用Type-C线刷改系统,首先要在AdnroidTools界面上,选择 “升级固件”,点击界面上的固件按钮,选择固件目录下的文件: MiniLoaderAll.bin,然后点击“擦除Flash”。可是擦出Flash之后,设备变成Maskrom设备,此时再进行线刷,烧录的系统启动后显示器不亮。
解决方法是换SD卡刷,用官方提供的工具将镜像烧进SD卡,再用卡刷完成改系统,并且卡刷的时候 "low format"选项需要勾上,不然依旧黑屏。
总结一下:建议直接按照官方文档用SD烧写系统,烧写的时候记得勾选"low format"选项。如果线刷后显示器黑屏,要用卡刷旧。
3.换源
RK3399 是基于ARM8架构的芯片,arm linux改源需要用arm linux源。
-备份官方源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bcakup
-换国内源
针对RK3399 Ubuntu18
arm ubuntu 使用的源是 ubuntu-ports,我们用华为的云镜像,https://mirrors.huaweicloud.com/
选择arm类->Ubuntu-Ports
list文件选择bionic(bionic是ubuntu版本的代号,查见https://blog.csdn.net/zhengmx100/article/details/78352773)
那么按照华为云镜像官方的提示,在终端执行:
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
sudo wget -O /etc/apt/sources.list https://mirrors.huaweicloud.com/repository/conf/Ubuntu-Ports-bionic.list
即可
网上常见更新法
首先允许gedit被访问:
xhost +
然后通过gedit打开sources.list文件
sudo gedit /etc/apt/sources.list
清空文件内的内容,然后选择源添加到文件当中,保存并退出。
这里推荐使用华为源。
–清华源:
# 默认注释了源码镜像以提高 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
–华为源(据说很快):
deb https://repo.huaweicloud.com/ubuntu-ports/ bionic main restricted universe multiverse
deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu-ports/ bionic-security main restricted universe multiverse
deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic-security main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
## Not recommended
# deb https://repo.huaweicloud.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse
-更新软件列表和升级
在终端上执行以下命令更新软件列表,检测出可以更新的软件:
sudo apt-get update #更新源
在终端上执行以下命令进行软件更新:
sudo apt-get upgrade # 更新已安装的包
更新完了记得执行:
sudo apt-get clean && sudo apt-get autoclean #清理无用的包
清楚apt 的缓存
4.文件传输
-U盘传输文件
-通过XFTP传输
确保设备和主机在同一局域网内,首先在系统中启动终端并执行命令:
ifconfig
得到如下
在wlan0中找到inet 地址,也就是ip地址。此处的inet地址为 172.19.19.5,记住这个地址。
然后打开Xftp软件,新建连接,配置如下:
其中主机的位置就填写刚刚得到的ip地址(苏州大学未申请静态IP的设备在重启之后可能会被分配新的IP地址,所以连接前注意查看ip地址)。
5.远程连接
远程连接用的是Xshell软件,建立连接的方式类似Xftp,可通过Xshell操作设备的终端。
6.安装Mini-forge
到https://github.com/conda-forge/miniforge/releases下载最新的arm8版本,也就是aarch64版本,此处我下载的是Miniforge-pypy3-Linux-aarch64.sh
。
这里我最开始安装的是Miniforge-pypy3-4.9.2-0-Linux-aarch64.sh
,不过在安装tensorflow lite 的轮子时报错不支持此平台,后安装Miniforge-pypy3-Linux-aarch64.sh
问题解决。
终端cd到 下载文件所在的目录,执行:
sudo bash Miniforge-pypy3-Linux-aarch64.sh
一路enter,然后输入yes之后安装。
安装完成之后执行命令:
sudo gedit ~/.bashrc
在文件最后添加
export PATH=$PATH:/home/pi/miniforge3/bin
注意这里/home/pi/miniforge3/bin
是miniforge安装目录下的bin目录位置,安装时观察好安装位置
保存之后执行命令:
source ~/.bashrc
立即生效。
使用命令:
conda init
以初始化conda
重启终端。
即可看到conda基础环境,其他例如新建虚拟环境等操作类似Anaconda。
如果提示conda: command not found
,就是 在 export
的时候,miniforge安装的位置没填正确,正确修改后即可。
如果遇到 The current user does not have wrote permissions to a required path 错误
cd到conda安装目录的父级目录,执行:
sudo chown -R pi miniforge-pypy3 # pi 是用户名, miniforge-pypy3是安装目录
7.编译安装MNN
环境要求:
- cmake(建议使用3.10或以上版本)、
- protobuf(使用3.0或以上版本)
- gcc(使用4.9或以上版本)
环境检查代码:
cmake --version
protoc --version
gcc --version
首先在终端cd到工作目录,然后执行一下命令下载Mini-forge:
git clone https://https://github.com/alibaba/MNN
下载之后在工作目录下会出现MNN
目录。
-编译推理部分
cd /path/to/MNN
./schema/generate.sh
mkdir build && cd build && cmake .. && make -j8
-编译训练部分
保持终端工作目录不变,执行:
cmake .. -DMNN_BUILD_TRAIN=ON && make -j8
编译完成后运行:
./runTrainDemo.out
如果有信息表示编译成功:
Usage: ./runTrainDemo.out CASENAME [ARGS]
Valid Case:
DataLoaderDemo
DataLoaderTest
DistillTrainQuant
ImageDatasetDemo
LinearRegress
MatMulGradTest
MnistInt8Train
MnistTrain
MnistTrainSnapshot
MobilenetV2PostTrain
MobilenetV2Train
MobilenetV2TrainQuant
MobilenetV2Transfer
NNGrad
NNGradV2
NNGradV3
OctaveMnist
PostTrain
PostTrainMobilenet
QuanByMSE
QuanMnist
TestMSE
-编译转换部分
保持终端工作目录不变,执行:
cmake .. -DMNN_BUILD_CONVERTER=true && make -j8
-姿态检测Demo
准备工作:
cd MNN/build
cmake -DMNN_BUILD_DEMO=ON .. && make -j8
下载原始的Tensorflow模型。链接:https://pan.baidu.com/s/1QbEgh1kUjl2Kpi2ouwWfUA提取码: rusy
使用模型转换工具将pb模型转换为 MNN 模型。
cd MNN/build
./MNNConvert -f TF --modelFile model-mobilenet_v1_075.pb --MNNModel donkey.mnn --bizCode biz
将转换之后的donkey.mnn模型复制到MNN/demo/exec文件夹下,执行行姿态检测。
cd MNN/demo/exec
./multiPose.out donkey.mnn input.jpg pose.png
8.安装MNN Python API
首先需要完成以上编译工作,其次需要在python中安装numpy
cd到目录MNN/pymnn/pip_package,执行:
python build_deps.py
完成之后,打开build_manylinux2014.sh
,将16行的/opt/python/*/bin
改为自己pip所在位置
例如我的pip位置是home/pi/miniforge-pypy3/bin
改完之后保存,执行命令:
bash build_manylinux2014.sh
等待执行完成之后就能得到轮子了。
得到wheel包之后安装一下
9.安装TensorFlow 2.X
在arm8 linux 上安装TF2又需要编译,很麻烦,所以我们用人家编译好的。
环境:
Python3.7或者Python3.5
推荐Python3.7版本,首先到https://github.com/lhelontra/tensorflow-on-arm/releases下载编译好的aarch64版本的.whl文件。本文成功安装tensorflow-2.3.0-cp37-none-linux_aarch64.whl
,其他情况未测试。
准备:
1.安装依赖:
sudo apt-get install pkg-config libhdf5-100 libhdf5-dev gfortran libopenblas-dev liblapack-dev
2.安装tensorflow-2.3.0-cp37-none-linux_aarch64.whl
:
pip install tensorflow-2.3.0-cp37-none-linux_aarch64.whl
等待安装完成。
10.安装TensorFLow Lite Python API
TensorFLow Lite Python API的安装很简单,只要一行代码。首先来到https://tensorflow.google.cn/lite/guide/python,找到 Python版本快速入门:
我是miniforge虚拟环境,并且是aarch64,所以执行命令:
pip install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_aarch64.whl
等待安装完成即可。
11.安装Pytorch和Torchvision
在arm上安装Pytorch和Torchvision依旧需要从源码编译,异常的麻烦。所以我们直接用编译好的:
Pytorch 1.1/1.2:https://github.com/nmilosev/pytorch-arm-builds
Pytorch 1.5/1.6:https://github.com/gauravs900/pytorch_arm_aarch64_builds
环境:
python3.7
依赖:
sudo apt install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools python3-wheel python3-pillow python3-numpy
执行:
cd /pathTo/PytorchWheel
pip install torch-1.6.0a0+8682ac1-cp37-cp37m-linux_aarch64.whl
pip install torchvision-0.7.0a0+6631b74-cp37-cp37m-linux_aarch64.whl
# 我实在conda虚拟环境下安装的,所以执行的是pip install,系统环境请执行pip3 install。
# 安装的文件名根据自己下载的版本而定。
畅通无阻,无痛安装。
爱折腾的朋友可以参考编译树莓派的Pytorch的教程:https://nmilosev.svbtle.com/compling-arm-stuff-without-an-arm-board-build-pytorch-for-the-raspberry-pi
最后
以上就是寒冷紫菜为你收集整理的友善之臂NanoPC-T4 RK3399 配置 安装TensorFlow2 Pytorch的全部内容,希望文章能够帮你解决友善之臂NanoPC-T4 RK3399 配置 安装TensorFlow2 Pytorch所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复