温馨提示:
本安装教程为TensorFlow GPU预编译安装教程,安装过程比较复杂,如果安装过程中出现错误,请先排除已经出现的错误,否则很容易导致无法成功安装TensorFlow。
安装过程中,安装过程中,如果对Linux命令操作陌生,请自行熟悉。
操作系统:Ubuntu14.04 lts
cuda版本:cuda_8.0.61_375.26_linux.run
cudnn版本:cudnn-8.0-linux-x64-v5.1.tgz
预先安装依赖项:Anaconda、gcc、bazel
1、安装Anaconda
首先在Anaconda官网下载.sh文件,此处我下载的是bash Anaconda3-4.4.0-Linux-x86_64.sh
然后进入下载目录下,通过以下命令安装Anaconda:
bash Anaconda3-4.4.0-Linux-x86_64.sh
一直按enter键确定需要选择的项,直到完成安装。
安装完成后,程序提示是否把anaconda3的binary路径加入到.bashrc,选择yes即可。
然后通过以下命令,将ubuntu14.04自带的python3.4升级到最新的python3.6:
conda update conda
conda update anaconda
conda create -n mylab anaconda
conda create -n py3 python=3 anaconda
source activate py3
python -V
如果没有报错,则表示安装成功。
2、安装gcc
直接在终端输入以下命令(电脑处于联网状态):
sudo apt-get build-dep gcc
等到安装完成。
通过以下命令可以查看gcc的版本:
gcc --version
3、 安装bazel
首先需要安装bazel的依赖项JDK8,安装命令如下:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
注意:如果你没有安装add-apt-repository命令,需要执行sudo apt-get install software-properties-common命令(http://manpages.ubuntu.com/manpages/wily/man1/add-apt-repository.1.html)
然后才能够按照bazel官网的安装方法进行安装。
第一步:添加bazel包源
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add -
第二步:更新安装bazel
sudo apt-get update && sudo apt-get install bazel
安装完成后如果没有提示任何错误则表示成功安装。
4、安装cuda
在https://developer.nvidia.com/cuda-downloads中下载对应版本的cuda,此处根据我的系统选择的是cuda_8.0.61_375.26_linux.run版本,文件大小为1.4G.
进入到刚才下载的cuda位置,更改权限:
sudo chmod +x cuda_8.0.61_375.26_linux.run
同时按住ctrl+alt+F1进入命令行模式(注:ctrl+alt+F1~F6分别表示打开6个对应的命令对话界面,ctrl+alt+F7用于切换界面),然后登陆用户,并通过下面的命令关闭显卡驱动:
sudo /etc/init.d/lightdm stop
运行cuda安装包:
sudo ./cuda_8.0.61_375.26_linux.run
等待1~2分钟,会出现◆◆◆◆1%。直接按下Q键,然后选择accept接受协议,遇到选择(y)es/n(o)/(q)uit的全部选择y,遇到需要确认安装路径的全部选择回车键(默认路径),然后等待安装完成。
安装完成后运行:
sudo /etc/init.d/lightdm restart
如果成功回到图形操作界面,则在终端中进行添加变量路径,否则可以输入startx回到图形操作界面。
设置环境变量,直接在终端中输入以下命令:
gidit .bashrc
然后进入编辑文件中,在最后添加以下路径
export PATH=”/usr/local/cuda-8.0/bin:$PATH ”
export LD_LIBRARY_PATH=”/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH ”
保存修改并退出。
然后输入以下命令检测cuda是否安装成功:
nvcc -V
5、安装cudnn
进入到cuda-8.0的安装目录
cd /usr/local
然后将下载好的cudnn5.1进行解压(这里cudnn放在Downloads下的)
sudo tar -zxvf ~/Downloads/cudnn-8.0-linux-x64-v5.1.tgz
6、编译安装Tensorflow
如果以上步骤均正确安装,则可进行后续安装,否则在后续编译会出错。安装过程中需要在线下载,因此提前联网。
第一步:下载Tensorflow1.0.0-rc0的源代码
wget https://github.com/tensorflow/tensorflow/archive/v1.0.0-rc0.tar.gz
第二步:解压以下载好的Tensorflow1.0.0,注意确保和你下载的文件名一致
tar -zxvf v1.0.0-rc0.tar.gz
第三步:解压完成且未报任何错误,进入Tensorflow代码仓库的目录,然后执行下面的命令进行配置:
cd tensorflow-1.0.0-rc0
./configure
第四步:选择python路径,确保是anaconda的python路径即可(x表示我的主机名,每个人的可能不一样):
Please specify the location of python. [Default is /home/x/anaconda3/bin/python]:
直接按回车键。
第五步:选择CPU编译优化选项,默认的-march=native将选择本地CPU能支持的最佳配置,这一步也直接选择默认配置,按回车键确认即可:
Please specify optimization flags to use during compilation [Default is -march=native]:
第六步:选择是否使用jemalloc作为默认的malloc实现(仅限Linux),直接选择默认设置,输入y即可:
Do you wish to use jemalloc as the malloc implementation? (Linux only) [Y/n]:
第七步:选择是否开启Google Cloud Platform的支持,输入N即可:
Do you wish to build Tensorflow with Google Cloud Platform support?[y/n]:
第八步:选择是否需要支持Hadoop File System,如果有读取HDFS数据的需求,则输入y,否则输入默认的N即可:
Do you wish to build Tensorflow with Hadoop File System support? [y/n]:
第九步:选择是否开启XLA JIT编译功能支持,可以选择输入y:
Do you wish to build Tensorflow with the XLA just-in-time compiler (experimental)? [y/n]:
第十步:然后选择python的library路径,依然选择anaconda的路径,直接回车确认即可:
Please input the desired Python library path to use. Default is [/home/x/anaconda3/ lib/python/3.6/site-packages]:
第十一步:接着选择是否需要支持OpenCL,输入n即可:
Do you wish to build Tensorflow with OpenCL support? [y/n]:
第十一步:接着选择是否需要支持CUDA,输入y即可:
Do you wish to build Tensorflow with CUDA support? [y/n]:
第十二步:接下来选择指定的gcc编译器,直接选择默认即可(注意查看一下/usr/bin里面是否存在gcc):
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
第十三步:选择要使用的CUDA版本,输入8.0,回车:
Please specify the Cuda SDK version you want to use, e.g. 7.0. [Leave empty to use system default]:
第十四步:选择CUDA的安装路径,这里不能选择默认路径,需要输入/usr/local/cuda-8.0:
Please specify the location where CUDA toolkit is installed. Refer to README.md for more detailes. [Default is /usr/local/cuda]:
第十五步:选择要使用的cuDNN版本,输入5.1,回车:
Please specify the Cudnn version you want to use. [Leave empty to use system default]:
第十六步:选择cuDNN的安装路径,如果默认路径是/usr/local/cuda-8.0,则直接回车,否则输入/usr/local/cuda-8.0:
Please specify the location where cuDNN library is installed. Refer to README.md for more detailes. [Default is /usr/local/cuda-8.0]:
确认之后可能还会出现让你选择cudnn的版本和路径,这个时候全部直接回车确认就行。
第十七步:选择GPU的计算能力,这里我的是6.1,不清楚可以去英伟达官网查询:
Please note that each additional compute capability significantly increases your build time and binary size.[Default is: “3.5,5.2”]
至此,配置完成,配置过程中会下载对应需要其他库的代码仓库,等待下载完成即可。
第十八步:编译GPU版本的TensorFlow,执行以下命令,进行编译,整个编译会持续半个小时以上,耐心等待:
bazel build --copt=-march=native -c opt --config=cuda //tensorflow/tools/ pip_package:build_pip_package
第十九步:编译完成之后,执行命令生成pip安装包:
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
生成之后,可以在根目录下的tmp/tensorflow_pkg中看到一个.whl文件
第二十步:安装生成的.whl文件
pip install /tmp/tensorflow_pkg/tensorflow-1.0.0rc0-cp36-cp36m-linux_x86_64.whl
参考:1、Anaconda安装以及更改python版本:http://www.jianshu.com/p/0e28a8f581ff?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends&from=singlemessage&isappinstalled=1
2、bazel安装教程: http://blog.csdn.net/u010510350/article/details/522479723、cuda安装:https://zhuanlan.zhihu.com/p/27700114
http://blog.csdn.net/l297969586/article/details/53320706
4、《TensorFlow实战》TensorFlow安装教程
感谢以上博主或版主的详细分析!