页面树结构

2017-11-09 ApacheCN 开源组织,第二期邀请成员活动,一起走的更远 : http://www.apachecn.org/member/209.html


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

本指南介绍了如何将TensorFlow源构建到TensorFlow二进制文件中以及如何安装TensorFlow二进制文件。请注意,我们为Linux,Mac和Windows系统提供经过良好测试的预先构建的TensorFlow二进制文件。此外,还有预制的TensorFlow 码头图像。所以,不要自己构建一个TensorFlow二进制文件,除非你非常舒适地从源代码构建复杂的包,并处理不可避免的后果,如果事情不能完全符合文档。

如果最后一段没有吓到你,欢迎。本指南介绍如何在以下操作系统上构建TensorFlow:

  • Ubuntu的
  • Mac OS X

我们不正式支持在Windows上构建TensorFlow; 但是,如果您不介意在Windows 或 TensorFlow CMake构建中使用高度实验性的Bazel,则可以在Windows上尝试构建TensorFlow 。

确定哪个TensorFlow要安装

您必须选择以下类型的TensorFlow来构建和安装:

  • TensorFlow仅支持CPU支持。如果您的系统没有NVIDIA®GPU,请构建并安装此版本。请注意,此版本的TensorFlow通常更容易构建和安装,因此即使您有NVIDIA GPU,我们建议首先构建和安装此版本。
  • TensorFlow支持GPU。TensorFlow程序通常在GPU上比在CPU上运行得更快。因此,如果您的系统具有NVIDIA GPU,并且您需要运行性能关键型应用程序,则应最终构建并安装此版本。除了NVIDIA GPU本身之外,您的系统还必须满足以下文档中描述的NVIDIA软件要求:

  • 在Ubuntu上安装TensorFlow

  • 在Mac OS上安装TensorFlow

克隆TensorFlow存储库

通过克隆TensorFlow存储库开始构建TensorFlow的过程。

要克隆最新的 TensorFlow存储库,请发出以下命令:

$ git clone https://github.com/tensorflow/tensorflow  

上述git clone命令将创建一个名为的子目录tensorflow。克隆后,您可以通过调用以下命令来选择构建 特定的分支(如发行版分支):

$ cd tensorflow
$ git checkout Branch #where 分支是所需的分支
例如,要使用r1.0发行版而不是主版本,请发出以下命令:
$ git checkout r1.0 
接下来,您必须为Linux 或 Mac OS准备 环境

为Linux准备环境

在Linux上构建TensorFlow之前,请在系统上安装以下构建工具:

  • bazel
  • TensorFlow Python依赖关系
  • 可选,NVIDIA软件包支持TensorFlow for GPU。

安装Bazel

如果您的系统上没有安装bazel,请按照以下说明进行安装 。

安装TensorFlow Python依赖项

要安装TensorFlow,您必须安装以下软件包:

  • numpy,这是TensorFlow需要的数字处理软件包。
  • dev,它可以添加对Python的扩展。
  • pip,这使您能够安装和管理某些Python包。
  • wheel,它使您能够以轮(.whl)格式管理Python压缩包。

要为Python 2.7安装这些软件包,请发出以下命令:

$ sudo apt-get install python-numpy python-dev python-pip python-wheel 
要为Python 3.n安装这些软件包,请发出以下命令:
$ sudo apt-get install python3-numpy python3-dev python3-pip python3-wheel 

可选:安装TensorFlow for GPU先决条件

如果您正在构建没有GPU支持的TensorFlow,请跳过本节。

您的系统上必须安装以下NVIDIA 硬件

  • 具有CUDA Compute Capability 3.0或更高版本的GPU卡。有关 支持的GPU卡的列表,请参阅NVIDIA文档

您的系统上必须安装以下NVIDIA 软件

  • NVIDIA的Cuda Toolkit(> = 7.0)。我们建议使用8.0版。有关详细信息,请参阅 NVIDIA的文档。确保您将相关的Cuda路径名附加到 LD_LIBRARY_PATH环境变量中,如NVIDIA文档中所述。
  • 与NVIDIA公司的Cuda Toolkit相关的NVIDIA驱动程序。
  • cuDNN(> = v3)。我们推荐5.1版本。有关详细信息,请参阅 NVIDIA的文档,特别是附加适用于您的LD_LIBRARY_PATH环境变量的路径名的说明。

最后,还必须libcupti-dev通过调用以下命令进行安装:

$ sudo apt-get install libcupti-dev 

下一个

准备好环境之后,您必须 配置安装

 

为Mac OS准备环境

在构建TensorFlow之前,您必须在系统上安装以下内容:

  • bazel
  • TensorFlow Python依赖关系。
  • 可选,NVIDIA软件包支持TensorFlow for GPU。

安装bazel

如果您的系统上没有安装bazel,请按照以下说明进行安装 。

安装python依赖项

要安装TensorFlow,您必须安装以下软件包:

  • six
  • numpy,这是TensorFlow需要的数字处理包。
  • wheel,这使您能够以轮(.whl)格式管理Python压缩包。

您可以使用pip安装python依赖项。如果您的机器上没有点,我们建议您使用自制程序安装Python和pip,如下 所述。如果您按照这些说明,您将不需要禁用SIP。

安装pip后,调用以下命令:

$ sudo pip install six numpy wheel 

可选:安装TensorFlow for GPU先决条件

如果您没有安装brew,请按照以下说明进行安装 。

安装brew后,通过发出以下命令安装GNU coreutils:

$ brew install coreutils 
如果要编译张量流并安装了XCode 7.3和CUDA 7.5,请注意,Xcode 7.3尚未兼容CUDA 7.5。要解决此问题,请执行以下任一操作:
  • 升级到CUDA 8.0。
  • 下载Xcode 7.2并通过发出以下命令将其选为默认值:

    $ sudo xcode-select -s /Application/Xcode-7.2/Xcode.app
    

注意:您的系统必须满足以下文档之一中描述的NVIDIA软件要求:

 

配置安装

源代码树的根目录包含一个名为bash脚本的脚本 configure。该脚本要求您识别所有相关TensorFlow依赖关系的路径名,并指定其他构建配置选项,如编译器标志。您必须创建pip包并安装TensorFlow 之前运行此脚本。

如果您想使用GPU构建TensorFlow,configure将要求您指定Cuda和cuDNN的版本号。如果您的系统上安装了几个版本的Cuda或cuDNN,请明确选择所需的版本,而不是依赖于系统默认值。

这是configure脚本的一个示例执行。请注意,您自己的输入可能与我们的示例输入不同:

$ cd tensorflow  #cd到创建的顶级目录
$ ./configure
Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python2.7
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]:
Do you wish to use jemalloc as the malloc implementation? [Y/n]
jemalloc enabled
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N]
No Google Cloud Platform support will be enabled for TensorFlow
Do you wish to build TensorFlow with Hadoop File System support? [y/N]
No Hadoop File System support will be enabled for TensorFlow
Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N]
No XLA JIT support will be enabled for TensorFlow
Found possible Python library paths:
  /usr/local/lib/python2.7/dist-packages
  /usr/lib/python2.7/dist-packages
Please input the desired Python library path to use.  Default is [/usr/local/lib/python2.7/dist-packages]
Using python library path: /usr/local/lib/python2.7/dist-packages
Do you wish to build TensorFlow with OpenCL support? [y/N] N
No OpenCL support will be enabled for TensorFlow
Do you wish to build TensorFlow with CUDA support? [y/N] Y
CUDA support will be enabled for TensorFlow
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Please specify the Cuda SDK version you want to use, e.g. 7.0. [Leave empty to use system default]: 8.0
Please specify the location where CUDA 8.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify the cuDNN version you want to use. [Leave empty to use system default]: 5
Please specify the location where cuDNN 5 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
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"]: 3.0
Setting up Cuda include
Setting up Cuda lib
Setting up Cuda bin
Setting up Cuda nvvm
Setting up CUPTI include
Setting up CUPTI lib64
Configuration finished 
如果您告诉configure构建GPU支持,那么configure 将创建一个规范的符号链接到系统上的Cuda库。因此,每次更改Cuda库路径时,必须重新运行configure脚本,然后重新调用该bazel build命令。

请注意以下事项:

  • 虽然可以在同一源代码树下构建Cuda和非Cuda配置,但我们建议在同一源代码树中bazel clean进行这两种配置之间切换时运行。
  • 如果运行该 命令之前未运行该configure脚本,该命令将失败。 bazel buildbazel build

 

构建pip包

要为具有仅支持CPU的TensorFlow构建pip软件包,请调用以下命令:

$ bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package 
要为具有GPU支持的TensorFlow构建pip软件包,请调用以下命令:
$ bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package 
关于gcc 5或更高版本的注意事项: TensorFlow网站上提供的二进制点阵软件是使用gcc 4构建的,它使用较旧的ABI。要使您的构建与较旧的ABI兼容,您需要添加-cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"到您的bazel build命令。ABI兼容性允许针对TensorFlow pip包构建的自定义操作继续针对您构建的包。

提示:默认情况下,从源代码构建TensorFlow会占用很多RAM。如果RAM是系统上的问题,则可以通过--local_resources 2048,.5,1.0在调用时指定来限制RAM的使用bazel

bazel build命令构建一个名为的脚本 build_pip_package。如下运行此脚本将在.whl目录中构建一个文件/tmp/tensorflow_pkg

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

安装pip包

调用pip install安装该pip包。该文件的.whl文件名取决于您的平台。例如,以下命令将在Linux上安装TensorFlow 1.1.0的pip包:

$ sudo pip install /tmp/tensorflow_pkg/tensorflow-1.1.0-py2-none-any.whl 

验证您的安装

通过执行以下操作来验证您的TensorFlow安装:

启动一个终端

将directory(cd)更改到tensorflow您调用该configure命令的子目录以外的系统上的任何目录 。

调用python:

$ python 

在python交互式shell中输入以下短程序:

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello)) 
如果系统输出以下内容,则可以开始编写TensorFlow程序:
Hello, TensorFlow! 
如果您是TensorFlow的新手,请参阅TensorFlow入门

如果系统输出错误信息而不是问候,请参阅常见的安装问题

 

常见的安装问题

遇到的安装问题通常取决于操作系统。请参阅以下指南之一的“常见安装问题”部分:

除了这两个指南中记录的错误之外,下表列出了构建TensorFlow特有的其他错误。请注意,我们依赖堆栈溢出作为构建和安装问题的存储库。如果您遇到上述两个指南或下表中未列出的错误消息,请在堆叠溢出中搜索该错误消息。如果Stack Overflow没有显示错误消息,请在Stack Overflow上提出一个新问题并指定tensorflow标签。

堆栈溢出链接错误信息
42013316
ImportError: libcudart.so.8.0: cannot open shared object file:
  No such file or directory
42013316
ImportError: libcudnn.5: cannot open shared object file:
  No such file or directory
35953210Invoking `python` or `ipython` generates the following error:
ImportError: cannot import name pywrap_tensorflow
  • 无标签