原文链接 : https://www.tensorflow.org/install/install_sources
译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=10029599
本指南介绍了如何将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软件要求:
- 在Mac OS上安装TensorFlow
克隆TensorFlow存储库
通过克隆TensorFlow存储库开始构建TensorFlow的过程。
要克隆最新的 TensorFlow存储库,请发出以下命令:
|
上述git clone
命令将创建一个名为的子目录tensorflow
。克隆后,您可以通过调用以下命令来选择构建 特定的分支(如发行版分支):
|
例如,要使用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安装这些软件包,请发出以下命令:
|
要为Python 3.n安装这些软件包,请发出以下命令:
|
可选:安装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
通过调用以下命令进行安装:
|
下一个
准备好环境之后,您必须 配置安装。
为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后,调用以下命令:
|
可选:安装TensorFlow for GPU先决条件
如果您没有安装brew,请按照以下说明进行安装 。
安装brew后,通过发出以下命令安装GNU 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
脚本的一个示例执行。请注意,您自己的输入可能与我们的示例输入不同:
|
如果您告诉configure
构建GPU支持,那么configure
将创建一个规范的符号链接到系统上的Cuda库。因此,每次更改Cuda库路径时,必须重新运行configure
脚本,然后重新调用该bazel build
命令。
请注意以下事项:
- 虽然可以在同一源代码树下构建Cuda和非Cuda配置,但我们建议在同一源代码树中
bazel clean
进行这两种配置之间切换时运行。 - 如果在运行该 命令之前未运行该
configure
脚本,该命令将失败。bazel build
bazel build
构建pip包
要为具有仅支持CPU的TensorFlow构建pip软件包,请调用以下命令:
|
要为具有GPU支持的TensorFlow构建pip软件包,请调用以下命令:
|
关于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
:
|
安装pip包
调用pip install
安装该pip包。该文件的.whl
文件名取决于您的平台。例如,以下命令将在Linux上安装TensorFlow 1.1.0的pip包:
|
验证您的安装
通过执行以下操作来验证您的TensorFlow安装:
启动一个终端
将directory(cd
)更改到tensorflow
您调用该configure
命令的子目录以外的系统上的任何目录 。
调用python:
|
在python交互式shell中输入以下短程序:
|
如果系统输出以下内容,则可以开始编写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 |
35953210 | Invoking `python` or `ipython` generates the following error: ImportError: cannot import name pywrap_tensorflow |