条件
- Ubuntu16.04
- GPU:GeForce GTX 1080 Ti (nvidia-smi -L命令可查看)
- cuda 9.1
- cudnn 7.0.5
- root安装好的bazel (没有root权限也可以通过conda自行安装)
从源码安装就在于可以自定义cuda和cudnn的版本, 不用使用默认的版本,也不用针对不同版本的tensorflow需要另外安装cuda(需要root权限)。
克隆 TensorFlow 代码库
$ git clone https://github.com/tensorflow/tensorflow
上述 git clone 命令会创建一个名为 tensorflow 的子目录。克隆完成后,您可以选择通过调用以下命令来构建特定分支(如版本分支):
$ cd tensorflow
$ git checkout Branch # where Branch is the desired branch
我使用是1.8版本, (1.9版本而不是主版本)可发出以下命令:
$ git checkout r1.8
conda 创建环境
使用Anaconda2 创建的python2环境安装成功,但是不能import tensorflow,具体问题在Stack Overflow提出,目前仍没有解决:No module named tensorflow
使用Anaconda3创建的python3环境可以使用。
创建环境
conda create -n tf18 python=3.6 anaconda
进入环境
source activate tf18
export 环境路径 !!!
通过命令:
ls -l /usr/local
可以查看所有的cuda版本,确定要使用的cuda版本号,执行三条export命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.1/lib64/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.1/extras/CUPTI/lib64
配置configure
$ cd tensorflow # cd to the top-level directory created
$ ./configure
配置过程中,除了一下指出的几条,都可以选择默认的
Do you wish to build TensorFlow with CUDA support? [y/N]: Y
CUDA support will be enabled for TensorFlow.
Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 9.0]: 9.1
####这里需要指定自己前面export的版本
Please specify the location where CUDA 9.1 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-9.1
###这里需要更改为前面export的路径
Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7.0]:
这里需要看要用的版本 (ls -l /usr/local/cuda-9.1/lib64/ | grep cuddnn) 列出所有的cudnn版本
Please specify the location where cuDNN 7 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-9.1]:
构建 pip 软件包
首先通过:
gcc --version
自己的gcc版本,若 gcc 5 或更高版本,执行:
bazel build --config=opt --config=cuda --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package
否则,执行:
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel build 命令会构建一个名为 build_pip_package 的脚本.
最后,执行
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
一个 .whl
文件将在 /tmp/tensorflow_pkg 目录内构建
pip 安装
执行
pip install /tmp/tensorflow_pkg/tensorflow-1.6.0-py2-none-any.whl
完成安装。
安装完成后,要通过cd
命令离开下载的tensorflow路径。
进如python环境,测试
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
网友评论