本文主要讲如何使用ubuntu16.04系统源代码编译tensor flow-GPU。
电脑配置;
CPU:i5-5700
GPU:GT-730
内存:16G
我参考了网上很多教程,总结出了自己的一套tensorflow源代码编译的方法。
1. 如果你想要安装tensorflow-GPU版本首先得确定你电脑的显卡是否支持CUDA,一般来说必须是6系含以上级别的显卡才支持。然后再到NVIDIA官网里面查找自己显卡的计算能力。我的显卡计算能力是3.5。注:显卡能力必须查清楚,这个在后面配置时需要用到!
2. Ubuntu16.0.4系统自带python2.7如果你想安装3.5版本的就必须先安装python3.5,这两个版本可以同时存在,可以不用卸载2.7。Ctrl+Alt+T调出终端。在终端依次输入命令:
sudo apt-get install python3.5-dev
sudo apt-get install python3.5
再安装pip3
sudo apt-get install python3-pip
更新pip3版本
sudo pip3 install –upgrade pip
3. 安装CUDA和cuDNN
初次安装tensorflow的时候我看网上的教程说要禁用nouveau驱动说这个驱动会影响安装CUDA,其实大可不必这样。点击桌面右上角进入系统设置,点击软件更新-附加驱动,稍等过后就会显示可以使用的驱动。点击选择最新的驱动nvidia-384选择应用更改。重启电脑就可以了。
接下来就是安装CUDA和CDdnn了。调出终端,在终端里输入命令:
sudo apt-get install libcupti-dev安装CUPTI。
然后下载CUDA8.0和cuDnn6.0。这个东西可直接在NVIDIA官网上下载。注意这两个版本一定不要装错了,如果装错很难卸载。
下载完后将这两个文件放入同一个文件夹下面,输入命令安装CUDA。
sudo sh cuda_8.0.61_375.26_linux.run
运行上面这条命令后系统会问你是否要安装驱动,一定要选NO!!!后面的问题选择yes或者回车都行。
做完上面的步骤以后,打开终端输入命令:
sudo gedit /etc/profile
打开profile文件,在这个文件的末尾新开始一行添加两行如下文字:
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH
一定注意大小写和空格,写完第一行回车,再写第二行。然后保存退出。
然后重启电脑。
重启完后CUDA就算是正式装完了,若不放心可以在网上自己搜如何验证CUDA是否成功安装,上面有很多例子。
然后安装cuDNN6.0
进入到下载的cuDNN的文件夹,解压缩cudnn-8.0-linux-x64-v6.0.tgz文件,然后再终端里cd到解压后的文件夹里面的include文件夹中,执行命令:
sudo cp cudnn.h /usr/local/cuda/include/
然后cd到lib64文件夹中,执行命令:
sudo cp lib* /usr/local/cuda/lib64/
执行完上面所有的步骤以后CUDA和cuDNN就算都安装好了!
- 安装Bazel。
Bazel是谷歌自己开发的一款编译器。我们直接使用命令行直接安装即可。
在终端输入命令:
sudo apt-get install openjdk-8-jdk 安装JDK8
然后下载Bazel安装包,我下载的是0.5.4版本的安装包,网上很多人说要将Bazel升级到最新,这个是很坑的。我一开始使用最新版本的Bazel编译最后都会报错。在谷歌上面查说是编译器版本和tensorflow版本对应不上,最后下了个早期版本的才编译成功。
下载完成后在安装包所在目录下执行命令:
chmod +x bazel-0.5.4-installer-linux-x86_64.sh
./bazel-0.5.4-installer-linux-x86_64.sh –user 安装bazel - 编译tensorflow
Bazel安装完成后。就开始编译tensorflow,之前必须下载tensorflow源代码。我编译的是tensorflow1.4版本,见上传文件。
下载了源代码包后解压缩,不会解压的可以使用图形界面进行解压。进入到tensorflow1.4文件夹当中输入命令./configure然后就会要你配置一些路径。如下是我的配置方法。
Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3.5
Found possible Python library paths:
/usr/local/lib/python3.5/dist-packages
/usr/lib/python3.5/dist-packages
Please input the desired Python library path to use. Default is [/usr/lib/python3.5/dist-packages]
Using python library path: /usr/local/lib/python3.5/dist-packages
Please specify optimization flags to use during compilation when bazel option “–config=opt” is specified [Default is -march=native]: -march=native
Do you wish to use jemalloc as the malloc implementation? [Y/n] N
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] N
Do you wish to build TensorFlow with Hadoop File System support? [y/N] N
Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N] N
Do you wish to build TensorFlow with VERBS support? [y/N] N
Do you wish to build TensorFlow with OpenCL support? [y/N] N
Do you wish to build TensorFlow with CUDA support? [y/N] Y
CUDA support will be enabled for TensorFlow
Do you want to use clang as CUDA compiler? [y/N] N
Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 9.0]: 8.0
Please specify the location where CUDA 9.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]: /usr/bin/gcc
Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7.0]:6.0.21
Please specify the location where cuDNN 7 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda
Please specify a list of comma-separated CUDA compute capabilities you want to build with. 3.5这个是我电脑显卡的能力这个地方一定要写你自己的能力值!
Do you wish to build TensorFlow with MPI support? [y/N] N
界面显示finish后在终端输入:
bazel build -c opt –config=cuda //tensorflow/tools/pip_package:build_pip_package
之后就开始编译了,编译时间跟你电脑CPU有关,每人都不同,我当初编译花了1个多小时。
编译完成后会生成一个可以安装的whl包,在终端输入以下命令:
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
然后在根目录的tmp目录下面的tensorflow_pkg文件夹下就会有一个tensorflow1.4-gpu.XXXX.X.X.whl字样的安装文件。这个就是我们编译好的tensorflow安装包了。请将这个编译好的安装包 拷贝到一个你自己的工作文件夹下面保存,因为这个tmp文件夹里面的东西都是临时的,电脑重启就没了。所以这里最好复制出来重新保存一个副本。
最后进入到保存编译好的tensorflow1.4-gpuXXXXX.whl安装包的文件夹中,执行以下命令在你的电脑上安装这个你自己编译好的tensorflow-gpu版本!
sudo pip3 install tensorflow1.4-gpuXXXXXX.whl
成功!安装成功!输入以下命令来验证是否安装成功。
Python
在 Python 交互式 shell 中输入以下几行简短的程序代码:
import tensorflow as tf
hello = tf.constant(‘Hello, TensorFlow!’)
sess = tf.Session()
print(sess.run(hello))
如果系统输出以下内容,就说明你已经安装成功!
Hello, TensorFlow!
本文详细介绍如何在Ubuntu16.04系统上通过源代码编译TensorFlow-GPU版本,包括配置CUDA和cuDNN、安装Bazel编译器以及配置TensorFlow源代码的具体步骤。
3816

被折叠的 条评论
为什么被折叠?



