在NVIDIA Jetson Xavier NX上使用tensorflow-gpu

在NVIDIA Jetson Xavier NX上使用tensorflow-gpu

目前所做的项目需要在NVIDIA Jetson Xavier NX的ubuntu18.04的系统下配置ROS,python3以及tensorflow-gpu的环境,但是该环境的配置是比较早之前进行配置的,现在简单的记录一下配置的过程。

1.python3环境的配置

首先在NX中,ROS的版本是melodic,在该ROS版本下,只能使用python2.7,但是自己所写的python代码都是python3下的,加入在电脑本身的环境中进行配置的话,会导致ROS不能使用,所以需要使用虚拟环境来进行配置。
首先尝试了安装anaconda,但是可能是由于nx架构的问题,安装没有成功。所以采用了单独安装python虚拟环境的办法。

虚拟python环境配置

使用Python虚拟环境来保持 Python 开发环境相互独立。使用Python虚拟环境是一种最佳实践, 为了管理 Python 虚拟环境,使用virtualenv 和 virtualenvwrapper,使用以下命令安装

sudo pip install virtualenv virtualenvwrapper

打开bashrc,加入以下内容:

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

然后就可以创建一个虚拟的python环境了

mkvirtualenv tf_gpu -p python3

启动该虚拟环境

workon tf_gpu 

接下来就可以安装tensorflow-gpu的版本了,但是值得注意的是,这里需要按照nx固件(jetpack)的版本进行选择
对于Python 3.6+JetPack4.5,以及tensorflow2.x版本,可以按照如下的方式进行安装,其余版本请查询tensorflow-gpu安装查询地址

!!!(tf_gpu 虚拟环境下)!!!
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo apt-get install python3-pip
sudo pip3 install -U pip testresources setuptools==49.6.0
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
# TF-2.x
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow

这样安装完成之后,对ROS的运行没有影响。

2.cuda环境的配置

cuda环境在NX环境里面都是已经安装好的,可能文件夹的名称有所差异,若需要别的cuda版本,请自行安装,并更改bashrc内的环境参数即可。

export CUDA_HOME=/usr/local/cuda-10.2
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
source /opt/ros/melodic/setup.bash

3.tensorflow-gpu运行错误

可能tensorflow-gpu在运行的过程中会出现错误(Illegal instruction(core dumped)),这是由于NX是arm架构导致的,需要在bashrc内加入以下语句:

export OPENBLAS_CORETYPE=ARMV8

4.参考链接

在NANO上配置Python、Tensorflow和Keras
在Jetson nano(ubuntu)配置tensorflow时遇到的坑点

你可能感兴趣的:(记录学习,tensorflow,python,人工智能)