TensorFlow与自然语言处理应用
上QQ阅读APP看书,第一时间看更新

3.3 TensorFlow安装

我们可以在多个平台上安装和使用TensorFlow,例如Linux、Mac OS和Windows。当然,我们也可以使用TensorFlow最新的GitHub源来构建和安装TensorFlow。此外,如果我们的电脑运行的是Windows系统,那么比较常用的是通过Anaconda来安装TensorFlow。

由于Python 3附带了pip3包管理器,它是用于安装TensorFlow的程序,因此如果我们使用的是Python的这个版本,就无须安装pip。为简单起见,在本节中将展示如何使用本机pip安装TensorFlow。下面给出在Windows系统下安装TensorFlow的两个命令。启动一个“终端”程序,然后在该“终端”中执行相应的pip3 install命令。

(1)要安装TensorFlow的CPU版本,输入以下命令:

    C:\> pip3 install --upgrade tensorflow

(2)要安装TensorFlow的GPU版本,输入以下命令:

    C:\> pip3 install --upgrade tensorflow-gpu

在Linux方面,TensorFlow Python API支持Python 2.7和Python 3.3+,因此我们需要安装Python才能启动TensorFlow安装。我们必须安装Cuda Toolkit 7.5和cuDNN v5.1 +才能获得GPU支持。笔者使用的是Ubuntu系统,是采用pip3的命令来安装TensorFlow的,更多信息也可以参考https://tensorflow.google.cn/install/source上的说明。

在Linux上安装TensorFlow

这里将给出如何在Ubuntu 14.04或更高版本上安装TensorFlow。此处提供的说明可能也适用于Linux其他版本,只需进行少量的调整即可。

但是,在继续执行正式步骤之前,我们需要确定在平台上安装哪个TensorFlow,我们可以在GPU和CPU上运行数据密集型张量应用程序。因此,应该选择以下TensorFlow两种版本中的一个,在我们的平台上进行安装:

  • 仅支持CPU的TensorFlow:如果计算机上没有安装NVIDIA等GPU,就必须使用此版本安装并开始计算。这个很简单,可以在5到10分钟内完成。
  • 支持GPU的TensorFlow:深度学习应用程序通常需要非常高的计算资源,TensorFlow也不例外,我们通常可以在GPU上而不是在CPU上加快数据计算和分析速度。如果你的计算机上有NVIDIAGPU硬件,你应该安装并使用此版本。

根据我们的经验,即使计算机上集成了NVIDIA GPU硬件,也有必要安装并首先尝试仅使用CPU的版本,如果你没有体验到良好的性能,那么再切换到GPU来进行支持。

支持GPU的TensorFlow版本有几个要求,例如64位Linux、Python 2.7(或Python 3的3.3+),NVIDIACUDA7.5或更高版本(Pascal GPU需要CUDA 8.0)和NVIDIA cuDNN v4.0(最小)或v5.1(推荐)。更具体地说,TensorFlow的当前开发仅支持使用NVIDIA工具包和软件的GPU计算。因此,必须在Linux计算机上安装以下软件才能使得预测分析应用程序获得GPU的支持:

  • Python
  • NVIDIA Driver
  • CUDA with compute capability >= 3.0
  • CuDNN
  • TensorFlow
1. 安装Python和NVIDIA驱动程序

在不同的平台上安装Python的操作相对比较简单,这里不再赘述。另外,假设你的计算机中已经安装了NVIDIA GPU。

要检查一下你的计算机中的GPU是否已正确安装和正常工作,请在终端上执行以下命令:

    $ lspci -nnk | grep -i nvidia

由于预测分析很大程度上依赖于机器学习和深度学习算法,因此请确保你的计算机上安装了一些基本软件包,例如GCC和一些用于科学计算的Python软件包。

只需在终端上执行如下命令:

    $ sudo apt-get update
    $ sudo apt-get install libglu1-mesa libxi-dev libxmu-dev -y
    $ sudo apt-get — yes install build-essential
    $ sudo apt-get install python-pip python-dev -y
    $ sudo apt-get install python-numpy python-scipy -y

现在通过wget下载NVIDIA驱动程序(不要忘记为你的计算机选择正确的版本),并以silent模式运行脚本:

    $ wget
http://us.download.nvidia.com/XFree86/Linux-x86_64/367.44/NVIDIA-Linux-x86_64-
367.44.run
    $ sudo chmod +x NVIDIA-Linux-x86_64-367.35.run
    $ ./NVIDIA-Linux-x86_64-367.35.run --silent

一些GPU显卡,如NVidia GTX 1080,附带内置驱动程序。因此,如果你的计算机具有不同于GTX 1080的GPU,就必须下载该GPU的驱动程序。

要确保驱动程序是否已正确安装,请在终端上执行以下命令:

    $ nvidia-smi

命令的结果应如图3-1所示。

图3-1 nvidia-smi命令的输出结果

2. 安装NVIDIA CUDA

为了将TensorFlow与NVIDIA GPU配合使用,需要安装CUDA Toolkit 8.0及其相关的NVIDIA驱动程序。CUDA工具包包括:

  • GPU加速库,如用于快速傅里叶变换的cuFFT(FFT)。
  • 基本线性代数子程序(BLAS)的cuBLAS。
  • 稀疏矩阵例程的cuSPARSE。
  • 用于密集和稀疏的直接求解器的cuSOLVER。
  • 用于随机数生成的cuRAND,用于图像的NPP和视频处理原语。
  • NVIDIA图形分析库的nvGRICH。
  • 推力模板并行算法和数据结构专用的CUDA数学库。

对于Linux,下载和安装所需的包:

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

使用的wget命令如下:

    $ wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_
    installers/cuda_8.0.61_375.26_linux-run
    $ sudo chmod +x cuda_8.0.61_375.26_linux.run
    $ ./ cuda_8.0.61_375.26_linux.run --driver --silent
    $ ./ cuda_8.0.61_375.26_linux.run --toolkit --silent
    $ ./ cuda_8.0.61_375.26_linux.run --samples -silent

另外,确保你已经将CUDA安装路径添加到LD_LIBRARY_PATH环境变量中:

    $ echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/
    usr/local/cuda/extras/CUPTI/lib64"' >> ~/.bashrc
    $ echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.bashrc
    $ source ~/.bashrc
3. 安装NVIDIA cuDNN v5.1+

安装CUDA Toolkit后,从Linux上下载cuDNN v5.1库,解压缩文件并将其复制到CUDA Toolkit目录(假设在/ usr / local / cuda /中):

    $ cd /usr/local
    $sudo mkdir cuda
    $ cd ~/Downloads/
    $ wget http://developer2.download.nvidia.com/compute/machine-learning/
    cudnn/secure/v6/prod/8.0_20170427/cudnn-8.0-linux-x64-v6.0.tgz
    $ sudo tar -xvzf cudnn-8.0-linux-x64-v6.0.tgz
    $ cp cuda/lib64/* /usr/local/cuda/lib64/
    $ cp cuda/include/cudnn.h /usr/local/cuda/include/

注意,要安装cuDNN v5.1库,我们必须在https://developer.nvidia.com/accelerated-computing(-?)developer上注册加速计算开发程序。现在,当安装了cuDNN v5.1库之后,请确保创建了CUDA_HOME环境变量。

4. 安装libcupti-dev库

最后,需要在你的计算机上安装libcupti-dev库,这是提供高级分析支持的NVIDIA CUDA。要安装此库,请执行以下命令:

    $ sudo apt-get install libcupti-dev
5. 安装TensorFlow

有关如何为CPU安装最新版本的TensorFlow,以及如何为具有NVIDIA、cuDNN和CUDA计算能力的GPU提供支持,请参阅下面的部分。可以在计算机上以多种方式安装TensorFlow,比如使用virtualenv、pip、Docker和Anaconda。这里使用pip和virtualenv方式。(有兴趣的读者可以尝试使用Docker和Anaconda安装,详见https://tensorflow.google.cn/install/。)

(1)使用本地pip安装TensorFlow

对于Python 2.7,仅支持CPU版本的,具体如下:

    $ pip install tensorflow
    # For Python 3.x and of course with only CPU support:
    $ pip3 install tensorflow
    # For Python 2.7 and of course with GPU support:
    $ pip install tensorflow-gpu
    # For Python 3.x and of course with GPU support:
    $ pip3 install tensorflow-gpu

(2)使用virtualenv安装TensorFlow

如果你已经在系统上安装了Python 2+(或3+)和pip(或pip3),请按照以下步骤安装TensorFlow。

①创建virtualenv环境:

    $ virtualenv --system-site-packages targetDirectory

targetDirectory表示virtualenv树的根目录。默认情况下,它是~/ tensorflow(也可以选择任何其他目录)。

②按如下方式激活virtualenv环境:

如果命令在步骤2中执行成功,那么在“终端”程序中上应该可以看到以下内容:

    (tensorflow)$

③安装TensorFlow。

按照以下命令之一在激活的virtualenv环境中安装TensorFlow。

对于仅支持CPU的Python 2.7,请使用以下命令:

    (tensorflow)$ pip install --upgrade tensorflow

对于仅支持CPU的Python 3.x,请使用以下命令:

    (tensorflow)$ pip3 install --upgrade tensorflow

对于支持GPU的Python 2.7,请使用以下命令:

    (tensorflow)$ pip install --upgrade tensorflow-gpu

对于仅支持GPU的Python 3.x,请使用以下命令:

    (tensorflow)$ pip3 install --upgrade tensorflow-gpu

如果上述命令成功,就跳过步骤5;如果上述命令失败,请执行步骤5。此外,如果步骤3以某种方式失败,请尝试通过执行以下命令以在激活的virtualenv环境中安装TensorFlow:

    #对于 python 2.7(选择具有CPU或GPU支持的适当URL):
    (tensorflow)$ pip install --upgrade TF_PYTHON_URL
    #对于 python 3.x(选择具有CPU或GPU支持的适当URL):
    (tensorflow)$ pip3 install --upgrade TF_PYTHON_URL

④验证安装。

要在步骤3中验证安装,必须激活虚拟环境。如果virtualenv环境当前未处于激活状态,请执行以下命令之一:

    $ source ~/tensorflow/bin/activate    # bash, sh, ksh, or zsh
    $ source ~/tensorflow/bin/activate.csh   # csh or tcsh

⑤卸载TensorFlow。

要卸载TensorFlow,只需删除创建的目录树即可。例如:

    $ rm -r targetDirectory
6. 测试安装的TensorFlow

启动一个Python终端(只需在终端上输入python或python3),执行一段常见的“Hello,TensorFlow!”程序,代码行如下:

    >>> import tensorflow as tf
    >>> hello = tf.constant("Hello, TensorFlow!")
    >>> sess=tf.Session()
    >>> print sess.run(hello)

如果TensorFlow安装成功,我们将看到输出结果为“Hello, TensorFlow!”。