Ubuntu17.10下TensorFlow1.6的安装教程

    前两天在Ubuntu下安装TensorFlow,走了些弯路,因此想到写一篇博客mark一下。主要是TensorFlow-GPU和Cuda跟cuDNN的版本匹配问题。

第一步 创建Virtualenv环境    #参考面向机器智能的TensorFlow实践

# Python 2.7

$ sudo apt-get install python-pip python-dev python-virtualenv

# Python 3

$ sudo apt-get install python3-pip python3-dev python3-virtualenv

接下来创建一个包含该虚拟环境的目录:

$ mkdir ~/env

利用Virtualenv命令创建虚拟环境

$ virtualenv --system-site-package ~/env/tensorflow

创建**虚拟环境的快捷方式:

$ sudo printf '\nalias tensorflow="source ~/env/tensorflow/bin/activate"' >> ~/.bashrc

重启bash终端,输入:

$ tensorflow

即可**虚拟环境。

第二步 安装CPU版TensorFlow    如果不需要CPU版的可跳过这一步

直接在终端输入

# Python 2.7

$ pip install tensorflow

# Python 3

$ pip3 install tensorflow

第三步 安装Bazel    #参考https://docs.bazel.build/versions/master/install-ubuntu.html

安装JDK8:

$ sudo apt-get install openjdk-8-jdk

Add Bazel distribution URI as a package source (one time setup):

$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list 

$ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

安装和更新Bazel:

$ sudo apt-get update && sudo apt-get install bazel

$ sudo apt-get upgrade bazel

第四步 安装Cuda    #参考https://developer.nvidia.com/cuda-90-download-archive

登录参考中的网址,按照下图进行选择


依次输入如下命令即可完成cuda的安装,注意这里我们安装的版本是9.0而不是9.1!!!

`sudo dpkg -i cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb` 

`sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub` 

`sudo apt-get update` 

`sudo apt-get install cuda`

第五步 安装cuDNN    #参考面向机器智能的TensorFlow实践

单击如下页面的“Download”按钮

developer.nvidia.com/cudnn

下载cuDNN 7.0.5 for Cuda 9.0    注意!!!7.1.2版本不适合TensorFlow1.6.0

选择“cuDNN 7.0.5 Library for Linux”

终端进入下载好的.tgz文件所在处,运行如下命令:

$ tar xvzf <**.tgz>

$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include

$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

第六步 安装TensorFlow-GPU

$ pip install tensorflow-gpu

这个命令安装的是目前最新版的TensorFlow,目前是1.6.0。TensorFlow各个版本与cuda和cudnn的兼容问题我不清楚,但是TensorFlow1.6.0和Cuda9.0根cuDNN7.0.5是兼容的,这是本博客的重点,敲黑板!!