许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  NVIDIA Jetson Xavier NX Developer Kit学习笔记

NVIDIA Jetson Xavier NX Developer Kit学习笔记

阅读数 6
点赞 0
article_banner

最近需要将自定义的TensorFlow模型部署在JETSON XAVIER NX DEVELOPER KIT,这里记录一些如何安装TensorFlow以及OpenCV的方法

英伟达开发板JETSON XAVIER NX DEVELOPER KIT示意图

通用部分

系统安装

具体安装方法参见

Getting Started With Jetson Xavier NX Developer Kit

https://developer.nvidia.com/embedded/learn/get-started-jetson-xavier-nx-devkit#intro

TeamViewer安装

进入TeamViewer官网 https://www.teamviewer.com/it/download/raspberry-pi/ ,选择Raspberry Pi选项,点击Scarica Host下载host版本的teamviewer,我这里下载版本为:teamviewer-host_15.10.5_armhf.deb。进入下载文件目录,输入以下命令:

# 由于下载文件架构为armhf,因此需要添加armhf架构
sudo dpkg --add-architecture armhf
# 系统更新
sudo apt update
# 安装teamviewer
sudo dpkg -i teamviewer-host_15.10.5_armhf.deb

注意如果出现报错,原因是确实armhf需要的依赖,运行如下命令:

sudo apt --fix-broken install

安装完成后进入桌面,进入软件界面就能看到已安装的TeamViewer

图中所示为我已经连上了的截图,点击进入TeamViewer,在右上角状态栏会有图标,点击显示状态对话框,就可以进行一系列的连接操作了

Anaconda 替代品安装

miniforge安装

可选安装[Linux系统常用的安装包]

# apt-get install apt-utils
apt-get install apt-utils
# apt-get install iputils-ping
apt-get install iputils-ping
# apt-get install net-tools
apt-get install net-tools
# ps
apt-get install procps

由于我所购买的NVIDIA Jetson Xavier使用的arm64架构是没法使用anaconda的,强行安装不仅麻烦还容易出现各种问题,因此我们选择安装miniforge

miniforge与miniconda的区别在于miniforge的下载通道是conda-forge

miniforge的github地址:https://github.com/conda-forge/miniforge

miniforge的.sh release下载地址:https://github.com/conda-forge/miniforge/releases

直接在网址中下载最新版就行了,下载后执行sh文件,比如我这里下载文件为Miniforge-pypy3-4.8.5-2-Linux-aarch64.sh

sh Miniforge-pypy3-4.8.5-2-Linux-aarch64.sh

注意:这里需要添加环境变量,否则会出现bash:conda Command not found这种找不到命令的错误,如下执行:

# 编辑环境变量
vim ~/.bashrc
# 增加环境变量
export PATH=/home/moemil/miniforge-pypy3/bin:$PATH
# 激活环境变量
source ~/.bashrc
# 显示(base)
source activate
conda init

注意设置为自己的安装路径

更换下载换源

更换conda源

conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

更换pip源

mkdir ~/.pip
cd ~/.pip
vi pip.conf

[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/

通过 ESC wq 保存即可

创建虚拟环境

创建和使用的方式与传统PC Linux系统的Anaconda相同,相比于Windows则是多个一个conda前缀,XXX为你想要为环境命的名

conda create -n XXX python=3.6
conda activate XXX

启动风扇

安装硬件温度检测工具sensors

sudo apt install lm-sensors

安装成功以后,输入

sensors

系统会显示当前温度,一般不开风扇的话系统温度能达到40度左右(我这里是已经开着风扇了

在任意路径下,输入

sudo nvpmodel --query

会显示当前的运行模式,我所购买的板子有四种运行模式,在右上角 NVIDIA 图标可以查询得到,如下所示:

首先输入

jetson_clocks

通过以下命令可以查看板子的运行情况,如下所示:

# 安装 jetson-stats
sudo -H pip install jetson-stats
# 查看状态
sudo jtop

通过以下命令可以控制风扇的运行情况,如下所示:

# 为文件赋予权限
sudo chmod 777 /sys/devices/pwm-fan/target_pwm
# 设置占空比 255为最大转速,0为停止,设置在这个范围之间
sudo echo 255 > /sys/devices/pwm-fan/target_pwm

TensorFlow安装

根据官网的指引 https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html#prereqs ,以此输入以下指令,这部分指令的目的是安装依赖,属于通用型的

# 安装TensorFlow所需的系统软件包:
sudo apt-get update
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

# 安装和升级pip3
sudo apt-get install python3-pip
sudo pip3 install -U pip testresources setuptools=49.6.0

# 安装Python软件包依赖项
sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11

然后根据自己的选择安装TensorFlow2.x版本,还是TensorFlow1.x版本
注意:从20.02 TensorFlow版本开始,软件包名称已从tensorflow-gpu 至 tensorflow

# 使用以下命令安装TensorFlow点3命令。该命令将安装与JetPack 4.4兼容的最新版本的TensorFlow
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow

# TensorFlow版本2是最近发布的,与TensorFlow 1.x并不完全向后兼容。如果您希望使用TensorFlow 1.x软件包,可以通过将TensorFlow版本指定为小于2来安装它
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 ‘tensorflow<2’

# 如果要安装特定版本的JetPack支持的TensorFlow的最新版本,请发出以下命令
sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v$JP_VERSION tensorflow

其中JP_VERSION为使用的JetPack版本,例如 42 对于JetPack 4.2.2或,33 对于JetPack 3.3.1等,JetPack版本可用如下命令查询:

head -n 1 /etc/nv_tegra_release

例如我的版本是4.3,因此我在安装时使用
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow

   或
sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v43 tensorflow==2.1.0 + nv20.3

具体的适配可以参见官方文档

https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform-release-notes/tf-jetson-rel.html#tf-jetson-rel


TensorFlow VersionNVIDIA TensorFlow ContainerJetPack Version
2.3.020.094.4
2.2.020.08, 20.07, 20.064.4
2.1.020.044.4
20.03, 20.024.3
1.15.320.09, 20.08, 20.074.4
1.15.220.06, 20.044.4
20.03, 20.024.3
Older packages below are installed as ; more recent releases above as .
2.0.020.01, 19.124.3
19.114.2.x
1.15.020.01, 19.124.3
19.114.2.x
1.14.019.10, 19.09, 19.074.2.x
1.14.019.093.3.1
1.13.119.05, 19.04, 19.034.2.x

OpenCV安装

开发板自带安装

由于OpenCV是自带了的,所以直接将开发板自带的路径拷贝至我们的虚拟环境即可

# 拷贝链接并重命名为cv2
ln -s /usr/lib/python3/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so cv2.so
源码编译

下载opencv以及opencv_contrib源码,在opencv中创建一个 build  文件夹,进入此文件夹,在终端输入:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=/home/moemil/opencv_contrib/modules -D PYTHON3_EXECUTABLE=/home/moemil/miniforge-pypy3/envs/guoquanhao_tf2/bin/python -D BUILD_EXAMPLES=ON -D BUILD_opencv_python3=ON ..

在此期间,我一共报了两种错误,一种是文件的缺失,我们需要把如下文件手动拷贝到opencv_contrib/modules/xfeaturesd/src

这些缺失的文件报错方式如下:

/home/moemil/opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:654:20: fatal error: boostdesc_bgm.i: 没有那个文件或目录
           #include "boostdesc_bgm.i"
                    ^~~~~~~~~~~~~~~~~
compilation terminated.
modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/build.make:91: recipe for target 'modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc.cpp.o' failed
make[2]: *** [modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc.cpp.o] Error 1
CMakeFiles/Makefile2:12621: recipe for target 'modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/all' failed
make[1]: *** [modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....

这些报错都是文件缺失造成的,可能是网络原因造成的无法下载,因此我们可以在opencv/build/CMakeDownloadLog.txt查找到这些文件及其下载地址,将其下载下来即可(或创建一个同名文件将其代码复制下来)

第二个错误是找不到系统文件错误,发生在features2d,只需要将opencv下的features2d拷贝到build下即可,最后就会完成编译,编译与安装的指令如下:

sudo make -j8
sudo make install
sudo ldconfig

最终成功后我发现仍然没有cv2模块也找不到cv2的链接,因此妥协了系统自带的cv2链接,我也不知道为什么,这里留个足迹

选用部分

此部分根据自己环境的需求选用,旨在介绍如何更换CUDA以及CUDNN

更换CUDA以及CUDNN

由于安装完成后的TensorFlow使用的是CUDA10.0以及CUDNN7,而系统预装的是CUDA10.2以及CUDNN8,因此需要更换CUDA以及CUDNN,首先需要加入下载源,进入sources.list加入以下行:

deb https://repo.download.nvidia.com/jetson/common r32 main
deb https://repo.download.nvidia.com/jetson/t210 r32 main

然后执行

sudo apt-get update
sudo apt install cuda-toolkit-10-0
sudo apt-get install libcudnn7

完成后,设置环境变量

vim ~/.bashrc

export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin:$PATH

source ~/.bashrc

输入nvcc -V查看CUDA版本

在其目录下我们可以找到自己安装的CUDA10.0以及原始的CUDA10.2,可以自行设置环境变量

查看TensorFlow是否调用GPU

通过tf.test.is_gpu_available()查看是否支持GPU,最终发现为True,说明设置成功(之前CUDA10.2时为False,忘了放图)
在这里插入图片描述

这里就完成了一整个TensorFlow的安装以及CUDA、CUDNN的替换


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空