您的位置:首页 > 其它

TensorFlow安装过程尝试-Ubuntu 14.04 + GTX 1060

2016-11-28 16:13 369 查看
最近对TensorFlow比较感兴趣,将整个安装的程记录如下。

(一) 我首先尝试了一下源码安装,亲测步骤如下。最后结果是源码安装不成功。

Step 1:Ubuntu系统的安装。我采用的是双系统,安装的Ubuntu版本是14.04。系统的安装这里不作介绍,需要注意的是必须安装64位的系统。

Step 2: jdk8的安装。

(2.1)下载jdk文件

下载对应版本的jdk文件,网址为www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html

(2.2)创建目标路径文件夹

sudo mkdir /usr/lib/jvm

(2.3)解压

sudo tar zxvf jdk-8u111-linux-x64.tar.gz -C /usr/lib/jvm

(2.4)修改环境变量

sudo vim ~/.bashrc

在文件末尾加上:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111(这里根据实际情况更改)

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

(2.5)使环境变量马上生效:
source ~/.bashrc

(2.6)测试jdk

java -version

Step 3:安装Bazel。Bazel是一个开软代码管理工具。

(3.1)安装相关依赖

[/code]
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip
# For Python 2.7:
$ sudo apt-get install python-numpy swig python-dev python-wheel
# For Python 3.x:
$ sudo apt-get install python3-numpy swig python3-dev python3-wheel
[/code][/code]
(3.2)下载Bazel安装源文件

下载网址为https://github.com/bazelbuild/bazel/releases

(3.3)Bazel的安装

然后使用以下命令安装

$ chmod +x bazel-version-installer-os.sh
$ ./bazel-version-installer-os.sh --user
[/code]
其中bazel-version-installer-os.sh为
需要下载的版本,即获取的安装文件为.sh。使用
--user
后,bazel将会被安装在$HOME/bin,以及.bazelrc 会保存在$HOME/.bazelrc

设置运行环境:执行文件bazel将被安装在$HOME/bin路径下,所以加入PATH路径中:

$ export PATH="$PATH:$HOME/bin"
[/code]
通过"bazel version"可以测试是否安装成功。

Step 4:安装protobuf(tensorflow依赖)

(4.1)从https://github.com/google/protobuf下载压缩包并进行解压。

(4.2)进入protobuf文件夹,执行

$ ./autogen.sh
[/code]将会生成configure文件。

这一步需要注意的是,有可能碰到错误"autoconf: not found",这是因为没有安装automake工具。通过下面命令进行安装:

$ sudo apt-get install autoconf automake libtool
[/code]

(4.3)protobuf默认分散安装在 usr/local/bin,usr/local/lib,usr/local/include三个文件下,你可以通过 ./configure -–prefix来修改安装路径。

虽然我是root用户但觉得默认安装过于分散,所以统一安装在/usr/local/protobuf下。

$./configure --prefix=/usr/local/protobuf
$ make
$ make check
$ sudo make install
[/code]
到此步还没有安装完毕,在/etc/profile添加下面内容:

####### add protobuf lib path ########
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
######################################

[/code]通过source /etc/profile使得更改生效。

(4.4)查看安装是否成功

$ protoc –version
libprotoc 3.1.0
[/code]显示安装半杯为3.1.0,安装成功。

Step 5:源码安装tensorflow。
(5.1)下载源码文件:

$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow[/code][/code] 其中,--recurse-submodules是获取tensorflow所需要的protobuf库(加该选项运行成功的话,可以不单独安装protobuf)。

(5.2)进入tensorflow文件根目录中,

$ ./configure
[/code]
根据大部分博客总结,安装过程基本如上,但是正如很多人反映的那样,源码安装比较麻烦,我上面的安装结果最后也不成功。根据configure的错误提示,似乎是一些组件下载超时失败。所以决定采用其他方式进行安装,博客中总结的安装方式有基于Docker的安装,基于VirtualEnv的安装和基于Anaconda的安装。在这里我们采用基于Anaconda的安装。

(在后文2017.6.11的更新,源码安装成功,请接后文参考)

(二) 基于Anaconda的安装。亲测过程如下。

Step 1:下载并安装linux版本的Anaconda安装包。

(1.1)下载Anaconda

下载地址:https://www.continuum.io/downloads

这里选择64位Linux的Python 2.7版本。下载完成之后得到Anaconda2-4.2.0-Linux-x86_64.sh安装文件。

(1.2)安装Anaconda

打开terminal,输入如下命令,然后回车:

$ bash /home/cyfei/tf/Anaconda2-4.2.0-Linux-x86_64.sh
[/code]

这里的/home/cyfei/tf/Anaconda2-4.2.0-Linux-x86_64.sh是存放Anaconda安装包的路径。

一步一步回车阅读licence。按照提示需要设置安装路径时,采用默认安装路径即可。安装完成后,提示是否将Anaconda的安装路径添加到环境变量之中时,输入yes,否则需要手动通过export去添加。

Step 2:利用Anaconda安装tensorflow。

(2.1)建立一个conda计算环境

$ conda create -n tensorflow python=2.7
[/code]


(2.2)激活环境,利用conda安装tensorflow

$ source activate tensorflow
[/code]



(2.3)安装tensorflow

$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp27-none-linux_x86_64.whl[/code][/code] 
安装成功后,tensorflow的路径在Anaconda安装路径下的/envs/tensorflow.


测试tensorflow是否安装成功:

(1) 激活conda环境

(2)进入python

(3)import tensorflow

如能正常导入则安装成功。

之后,每次在使用tensorflow的时候都需要通过source activate tensorflow激活,使用完之后都需要通过source deactivate退出tensorflow。

2017.6.11更新,源码安装成功:

显卡为GTX1060

一. 安装CUDA驱动和cuDNN

1).官方网站下载:CUDA Toolkit 8.0

下载网址为:https://developer.nvidia.com/cuda-downloads
linux,86_64,Ubuntu,14.04,deb[local]

(网上有些博客反映,用deb安装有很多坑,要用runfile安装。但是,我用deb尝试了一下,并没有碰到坑,安装比较顺利。)

然后执行如下指令:

$ sudo dpkg -i cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda

这时在/usr/local目录下产生一个cuda安装的路径叫"cuda-8.0"添加cuda到环境变量:

sudo vim /etc/profile

添加内容:

export CUDA_HOME=/usr/local/cuda-8.0
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

使环境变量生效

source /etc/profile

检验是否安装成功:
参考测试网址:http://blog.csdn.net/masa_fish/article/details/51882183

a). 检查显卡驱动安装是否成功:
$ cat /proc/driver/nvidia/version
会输出NVIDIA Driver的版本号

b). 检查CUDA Toolkit是否安装成功:

$ nvcc –V
会输出CUDA的版本信息

c). 尝试编译cuda提供的例子:

测试用例:

$ cd /usr/local/cuda-8.0/samples/5_Simulations/nbody

$ sudo make

$ ./nbody -benchmark -numbodies=256000 -device=0

输出如下为安装成功:

> Windowed mode

> Simulation data stored in video memory

> Single precision floating point simulation

> 1 Devices used for simulation

gpuDeviceInit() CUDA Device [0]: "GeForce GTX 1060 6GB

> Compute 6.1 CUDA device: [GeForce GTX 1060 6GB]

number of bodies = 256000

256000 bodies, total time for 10 iterations: 4574.391 ms

= 143.267 billion interactions per second

= 2865.343 single-precision GFLOP/s at 20 flops per interaction

2). 降低gcc版本到5.0以下

查看gcc当前使用版本:

$ gcc --help

$ gcc --version #查看gcc版本号

最后一行为 <file:///usr/share/doc/gcc-4.8/README.Bugs>. 使用的ubuntu14.04使用的是4.8版本 所以不用降低gcc版本

否则执行如下指令:

$ sudo apt-get install g++-4.9
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
$ sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
$ sudo update-alternatives --set cc /usr/bin/gcc
$ sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
$ sudo update-alternatives --set c++ /usr/bin/g++

3). 下载 cuDNN V5 库文件并添加到cuda-8.0库

下载地址: https://developer.nvidia.com/cudnn
下载版本: cuDNN v5.1 Library for Linux

执行以下命令:

$ sudo tar xvzf cudnn-8.0-linux-x64-v5.1.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
$ sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn* #分配包的权限

二. 源码安装,上接(一) -> Step 5 -> (5.2)

(5.2) ./configure 配置

注意configure文件的路径名中不可以有中文

按照问题相应回答就可以,GPU support输入Y,其他一般都输入N(比如MPI,OpenCL等),在我这里,GTX 1060安装的Cuda 8.0和Cudnn 5.1版本,所以

Cuda SDK version输入8.0,路径输入/usr/local/cuda-8.0

cudnn version输入5.1.10,路径输入/usr/local/cuda-8.0 (注意cudnn version不能只输到5.1,否则会报错libcudnn.so.5.1找不到)

还有一个问题需要注意:

Please specify a list of comma-separated Cuda compute capabilities you want to
build with. You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus. Please note that each additional compute capability significantly increases your
build time and binary size. [Default is: \"3.5,5.2\"]:
GPU的compute capability可以参考:http://blog.csdn.net/JiaJunLee/article/details/52067962

GeForce GTX 1060对应的compute capability是6.1,因此输入6.1

(5.3) 编译

$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
若需要支持GPU:

$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
(5.4) 生成pip安装包

$ sudo mkdir -p /tmp/tensorflow/

$ sudo bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow/

这样,在/tmp/tensorflow目录下将会生成whl安装文件,在我这里生成的whl安装文件是:tensorflow-1.2.0rc2-cp27-none-linux_x86_64.whl

(5.5) 安装

$sudo pip install /tmp/tensorflow/tensorflow-1.2.0rc2-cp27-none-linux_x86_64.whl

至此安装完毕.

测试:

重启终端,然后输入python

$ python

>>>import tensorflow

没有报错,加载成功。

至此带GPU支持的tensorflow的源码安装成功!

测试程序:

文件:tensorflow/examples/tutorials/word2vec/word2vec_basic.py

line 152:

分别用with tf.device('/cpu:0')和with tf.device('/gpu:0')运行,没有问题。

参考博客及资料:
http://blog.csdn.net/tina_ttl/article/details/51762471#2-%E5%9F%BA%E4%BA%8Eanaconda%E7%9A%84tensorflow%E5%AE%89%E8%A3%85 http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html http://blog.csdn.net/xueyingxue001/article/details/67634174

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tensorflow 安装