在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时遇到的坑点
发表评论