在Jetson nano(ubuntu)配置tensorflow时遇到的坑点

刚在Jetson nano上面配置好了tensorflow,盘点一下我个人遇到的一些坑点,希望能够帮助大家少走弯路

注意事项

1)操作系统镜像刚烧进去开机时选择语言一定要全部选成英文,如果选中文可能会因此出现“build wheel error”之类的问题。
2)尽量使用jetson nano提供的下载源,不要去做没必要的换源。如果某个包真的需要换源才能下载,建议只在下载那个包的适合换源。
3)在下载包前要确定在jetson nano中他的名称,如anaconda在jetson nano适用的版本就和之前的安装方式不同。
4)在下载tensorflow之前不要下载numpy等tensorflow的依赖包,以避免版本冲突带来的问题。

如果您不幸遇到了以上几种问题,能够改正尽量改正,如果改正不了就只好重新烧录了。

安装tensorfow

这里需要注意的是Jetson nano的tensorflow可以按照官网的方式去下载,我的jetson nano自带cuda-10.2和cuda10,第二种方法为官网按照方法
官网如下:
Official TensorFlow for Jetson Nano!

准备工作

1.查看ubuntu版本

cat /etc/issue

lsb_release -a

2.检查cuda

cat /usr/local/cuda/version.txt

jetson nano中本身自带cuda,首先要找到cuda所在的文件夹看清楚自己cuda的版本,我这里的版本是cuda10,但是网上的各种配置环境变量都是用的cuda10.0,虽然版本一样,但是环境找不到cuda10,所以配置前一定要看清楚

将符合自己板子的cuda写入环境变量

sudo gedit  ~/.bashrc

在打开的文件最后填上

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

(注:因为博主的板子里面cuda10的文件名称为cuda10而不是cuda10.0,注意配置时写的cuda版本一定要和文件夹名称一模一样)

保存后执行

source ~/.bashrc

3.修改pip

sudo apt-get update
sudo apt-get full-upgrade
sudo apt-get install python3-pip python3-dev
python3 -m pip install --upgrade pip  #升级pip
sudo gedit /usr/bin/pip3   #打开pip3文件

将原来的

from pip import main
if __name__ == '__main__':
    sys.exit(main())

改为

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

方法一

sudo apt-get install python3-pip libhdf5-serial-dev hdf5-tools
pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.3 --user

方法二(官网方法)

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
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow

方法三

# 2. 安装依赖文件包,由于使用刚刷完镜像的板子,所以很多依赖包需要安装。

 sudo apt-get install python3-scipy 
 sudo apt-get install python3-pandas
 sudo apt-get install python3-sklearn
 sudo apt-get install libhdf5-serial-dev hdf5-tools

# 可以提前安装依赖包,如果网络情况好,可以跳过一下步骤
 sudo pip3 install Cython  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
 sudo pip3 install absl-py==0.7.0
 sudo pip3 install gast==0.2.2
 sudo pip3 install protobuf==3.11.2
 sudo pip3 install wrapt==1.11.2
 sudo pip3 install astor==0.8.1
 sudo pip3 install google-pasta==0.1.8
 sudo pip3 install keras  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
 sudo pip3 install grpcio-1.26.0.tar.gz
sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.14.0+nv19.10

注意:所有带sudo的命令都必须是以管理员身份运行的

因为没有换用国内镜像源,等待时间稍长一点,但为了防止出错这是值得的。如果因为超时有些时候是网络原因,可以先多试几次。

Segmentation fault (core dumped)

>>> import tensorflow as tf
Segmentation fault (core dumped)

如果出现这种情况,博主遇到的有两种可能
1.scipy版本不合适
在这种情况下可以卸载重装

sudo pip uninstall scipy
sudo apt-get install python3-scipy 

2.cudnn或cuda配置问题
检查一下是否安装了cudnn以及cuda的环境变量是否正确。
cudnn连接地址
选择适合自己版本的cudnn(注意,jetson nano 需要的版本的aarch)之后选择cuDNN Library for Linux那一个
解压后执行如下命令将文件复制到cuda的文件中

# 复制cudnn头文件
sudo cp cuda/include/* /usr/local/cuda-10.0/include/
# 复制cudnn的库
sudo cp cuda/lib64/* /usr/local/cuda-10.0/lib64/
# 添加可执行权限
sudo chmod +x /usr/local/cuda-10.0/include/cudnn.h
sudo chmod +x /usr/local/cuda-10.0/lib64/libcudnn*

验证是否成功

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如果没有报错说明成功了

缺少如libcublas.so.10.0的问题

遇到这种问题可以找到cuda里面自带的版本相近的文件直接复制并且重命名就行,这里以libcublas.so.10.0,libcudart.so.10.0,libcusolver.so.10.0举例。

cd /usr/local/cuda-10/lib64
sudo cp libcublas.so.10 libcublas.so.10.0
sudo cp libcudart.so.10 libcudart.so.10.0
sudo cp libcusolver.so.10 libcusolver.so.10.0

解决Illegal instruction(core dumped)报错

当我在python3中import tensorflow时,出现如下错误:Illegal instruction(core dumped)

1)打开bashrc文件

sudo gedit ~/.bashrc

2)在bashrc的最后一行添加

export OPENBLAS_CORETYPE=ARMV8

3)保存对bashrc的修改
4)如果希望修改马上生效,输入以下命令

source ~/.bashrc

后面可以自行安装一些需要的包,如PIL

sudo pip install pillow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾醒(AiXing-w)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值