Tensorflow环境搭建

第2章 Tensorflow环境搭建

本章主要介绍在几个主要的平台上,如何安装Tensorflow,以及简单的运行测试。

2.1 安装环境

目前TensorFlow社区推荐的环境是Ubuntu, 但是TensorFlow同时支持Mac,Windows上的安装部署。

因为深度学习计算过程,大量的操作是向量和矩阵的计算,而GPU在向量和矩阵计算方面比CPU有一个数量级的速度提升,所以深度学习在GPU上运算效率更高。

2.1.1 CUDA简介

显卡厂商NVIDIA推出的运算平台CUDA(Compute Unified Device Architecture),是一种通用的并行计算架构,该架构使GPU能够解决复杂的计算问题,它包含了CUDA指令集以及GPU内部的并行计算引擎。提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。程序开发人员通过C语言,利用CUDA的指令接口,就可以编写CUDA架构的程序。

2.1.2 CuDNN简介

CuDNN的全称是CUDA Deep Neural Network library,CuDNN是专门针对深度学习框架设计的一套GPU计算加速方案,最新版本的CuDNN提供了对深度神经网络中的向前向后的卷积,池化,以及RNN的性能优化。目前大部分深度学习框架都支持CuDNN。

目前包括TensorFlow在内的大部分深度学习框架,都支持CUDA。所以,为了让我们的深度神经网络的程序在TensorFlow上跑的更加好,推荐配置至少一块支持CUDA和CuDNN的NVIDIA的显卡。

2.2 TensorFlow的安装

Tensorflow的Python语言API支持Python2.7和Python3.3以上的版本。GUP版本推荐使用Cuda Toolkit 8.0和CuDNN v5.版本,Cuda和CuDNN的其他版本也支持,不过需要自己编译源代码的方式安装。

2.2.1 通过pip安装TensorFlow

pip是用来安装和管理Python包的管理工具。TensorFlow可以很方便的通过Pip来安装。
首先介绍pip在各个平台的安装方法。

2.2.1.1 安装Pip

在安装Pip之前请先自行安装好Python。

在Ubuntu/Linux系统上安装pip

#python2.7上安装pip
$ sudo apt-get install python-pip python-dev

#python3.5上安装pip
$ sudo apt-get install python3-pip

在Mac系统上安装pip

$ sudo easy_install pip
$ sudo easy_install --upgrade six

在Windows系统上安装Pip

# 去Python官网下载pip
https://pypi.python.org/pypi/pip#downloads

#解压文件,通过命令行安装pip
> python setup.py install

# 设置环境变量
在Windows的环境变量的PATH变量的最后添加"\Python安装目录\Scripts"
2.2.1.2 如何通过pip安装

Tensorflow已经把最新版本的安装程序上传到了Pypi,所以我们可以通过最简单的方式来安装TensorFlow。 (要求pip版本在8.1版本或者更高)

安装CPU版本的TensorFlow

#Python2.7
sudo pip install tensorflow

#Python3.5
sudo pip3 install tensorflow

安装支持GUP版本的TensorFlow

#Python2.7
sudo pip install tensorflow-gpu

#Python3.5
sudo pip3 install tensorflow-gpu

注意:目前在Windows上只支持64位的Python3.5版本。TensorFlow在Windows上依赖MSVCP140.DLL,需要提前安装Visual C++ 2015 redistributable (x64 version),并且将MSVCP140.DLL添加到环境变量PATH里。

在Windows系统上安装CPU版本(0.12版本)

C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-0.12.0-cp35-cp35m-win_amd64.whl

在Windows系统上安装GPU版本(0.12版本)

C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0-cp35-cp35m-win_amd64.whl
2.2.2 源码编译安装TensorFlow

有时候我们需要单独自定义一下TensorFlow的安装,比如我们的cuda是7.5版本的,这个时候我们可能需要自己编译源码进行安装。(这里只介绍在Ubuntu系统上)

2.2.2.1 从git上下载源码:
git clone https://github.com/tensorflow/tensorflow
2.2.2.2 安装Bazel

Bazel是Google开源的一套自动化构建工具,可以通过源的方式安装,也可以通过编译源码安装,这里只介绍最简单的通过源的安装方式。

先安装JDK8

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer

添加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://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

安装Bazel

$ sudo apt-get update
$ sudo apt-get install -y bazel
2.2.2.3 编译TensorFlow
#在过程中会进行一些参数路径选择,根据需要自己配置
cd tensorflow
./configure
#添加--config=cuda表示GPU版本
bazel build -c opt --config=cuda --define=use_fast_cpp_protos=true //tensorflow/tools/pip_package:build_pip_package
#编译完的whl文件会放到/tmp/tensorflow_pkg目录
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
#安装编译好的TensorFlow
sudo pip install --upgrade /tmp/tensorflow_pkg/tensorflow-0.12*.whl

注意:编译安装过程中可能出现一些其他的依赖需要手动安装

#根据运行出错的提示可能需要安装funcsigs和pbr
sudo pip install funcsigs
sudo pip install pbr

2.3 Cuda和CuDNN安装

如果我们要使用TensorFlow的GPU版本的话,我们还需要安装Cuda和CuDNN库。

2.3.1 NVIDIA驱动安装

驱动下载地址

http://www.nvidia.com/download/driverResults.aspx/106780/en-us

驱动安装

$ sudo chmod +x NVIDIA-Linux-x86_64-367.44.run
$ ./NVIDIA-Linux-x86_64-367.44.run
2.3.2 Cuda安装

根据自己的系统选择不同版本的Cuda下载安装。

下载地址

https://developer.nvidia.com/cuda-downloads

安装过程会提示一些选项,需要注意的是,我们在2.3.1已经安装了NVIDIA的驱动,所以在提示是否需要安装NVIDIA Accelerated Graphics Driver的时候选择n
选择参考如下:

Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.77?
(y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]: [回车]
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: n

安装成功后,提示我们需要把路径添加到环境变量里

Please make sure that
 -   PATH includes /usr/local/cuda-8.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

在/etc/profile或者~/.bashrc中添加如下内容:

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/:$LD_LIBRARY_PATH
#然后执行 source /etc/profile 或者 source ~/.bashrc
2.3.3 CuDNN安装

根据自己的系统环境和Cuda的版本,选择下载CuDNN。

下载地址

https://developer.nvidia.com/rdp/cudnn-download

安装过程

#以CuDNN的v5.1版本,Cuda 8.0为例
sudo tar -xzvf cudnn-8.0-linux-x64-v5.1.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*

设置环境变量

#编辑/etc/profile或者~/.bashrc文件,在末尾添加如下内容(根据自己的安装路径和版本请自行修改对应内容)
export LD_LIBRARY_PATH=/usr/local/cudnn/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"
#然后执行 source /etc/profile 或者 source ~/.bashrc

安装完成之后,让我们来测试一下CUDA,运行:

nvidia-smi

结果如下:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.48                 Driver Version: 367.48                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX TIT...  Off  | 0000:04:00.0     Off |                  N/A |
| 27%   67C    P0    77W / 250W |      0MiB / 12205MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX TIT...  Off  | 0000:83:00.0     Off |                  N/A |
| 29%   69C    P0    78W / 250W |      0MiB / 12206MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX TIT...  Off  | 0000:84:00.0     Off |                  N/A |
|  0%   60C    P0    58W / 250W |      0MiB / 12206MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

说明NVIDIA的驱动和cuda已经安装成功了。
上面的显示表示本机有3个GPU,GPU核心GeForce GTX TITAN,每个GPU有12G显存,因为没有在上面跑任何程序,所以目前GPU显存利用了0M,GPU利用率0%。

2.4 安装测试

好,如果顺利的话,到这里我们已经成功安装好了TensorFlow,那么让我简单测试一下安装是否成功。

$ python
...
>>> import tensorflow as tf
>>> print(tf.__version__)
0.12.0-rc1

上面这段代码,正常运行会打印出来TensorFlow的版本号,这里是“0.12.0-rc1”

常见问题:

如果在import tensorflow as tf之后,打印出来cuda的so或者cudnn的so没有找到, 一般是因为cuda或者cudnn的路径没有添加到环境变量里。

我们再跑一个简单的计算,看看tensorflow是否运行正常。输入如下代码:

$ python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(1)
>>> b = tf.constant(2)
>>> c=sess.run(a + b)
>>> print("1+2= %d" % c)
1+2= 3
>>>

如果你的这段代码可以正常输出“Hello, TensorFlow!” 和“1+2= 3”, 那么恭喜你,我们已经安装TensorFlow成功了。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值