网上现有的教程大多都基于cuda8.0安装r1.3-r1.5版本,我刷机用的jetpack3.2,自带有cuda9.0+cudnn7.0+opencv3.3.1,所以必须安装r1.6-r1.8版本的tensorflow。按照各种教程折腾了好多遍,在某一次安装成功的边缘,发现之前改文件把路径弄乱了,于是乎,又重新刷机,再次安装……
总之,TensorFlow我是来来回回折腾了一星期才装好的,真是一把辛酸泪呀。把我的安装过程总结下来,给自己做个备份,也给像我一要配置cuda9.0+cudnn7.0+tensorflow r1.7的人。
1. 安装pip
wget https://bootstrap.pypa.io/get-pip.py -o get-pip.py sudo python get-pip.py
这里总报错,我最后是删掉get-pip.py,然后把get-pip.py.1改名为get-pip.py解决的。因为我打开两个文件看了之后发现get-pip.py是一个记录文件,get-pip.py.1才是真正要下载pip的那个文件。
2. 安装Java
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer
3. 安装其他库
sudo apt-get install zip unzip autoconf automake libtool curl zlib1g-dev maven -y sudo apt-get install python-numpy swig python-dev python-pip python-wheel -y
4. 安装Bazel
从 https://github.com/bazelbuild/bazel/releases/ 下载 bazel-0.10.0-dist.zip,这里需要注意一下,我尝试了0.5.4和0.6.1版本的都没有成功,在前也有人说最好用0.10.0及以下的版本,所以我最后选择了0.10.0。
bazel_version=0.10.0 wget https://github.com/bazelbuild/bazel/releases/download/$bazel_version/bazel-$bazel_version-dist.zipunzip bazel-$bazel_version-dist.zip -d bazel-dist sudo chmod -R ug+rwxbazel-distcd bazel-dist ./compile.sh
编译很耗时,大约需要20-30分钟吧,编译完之后拷贝:
sudo cp output/bazel /usr/local/bin
5. 创建虚拟内存
由于编译tensorflow 需要大约 8GB 内存,怕内存不够用,需要先建一个虚拟内存出来。
fallocate -l 8G swapfile chmod 600 swapfile mkswap swapfile sudo swapon swapfile swapon -s
6. 安装tensorflow r1.7
我是从这里下载的人家编译好的版本,也可以从源码编译(源码编译可以参考我最后引用的博客1)
作者把r1.7的whl文件分了两个部分存放的,所以需要先merge一下才可以用。
cat tensorflow-1.7.0-cp27-cp27mu-linux_aarch64.whl.part-* > tensorflow-1.7.0-cp27-cp27mu-linux_aarch64.whl sudo pip install tensorflow-1.7.0-cp27-cp27mu-linux_aarch64.whl
更新pip:
sudo pip install --upgrade pip
7.测试
python import tensorflow as tf
查看tensorflow版本:
import tensorflow as tf print(tf.__version__)
8. 安装keras
sudo pip install keras
查看keras版本:
python import keras print(keras.__version__)
我安装keras的时候遇到了hdf5文件找不到的问题,后来发现是连接路径不对,所以又打开终端,添加了对hdf5的连接:
nvidia@tegra-ubuntu~$ sudo ln libhdf5_serial.so.10.1.0 libhdf5.so [sudo] password for nvidia: nvidia@tegra-ubuntu:/usr/lib/aarch64-linux-gnu$ sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so nvidia@tegra-ubuntu:/usr/lib/aarch64-linux-gnu$ sudo ldconfig
9. 参考
1. Nvidia Jetson TX2 上编译安装 TensorFlow r1.5