文档章节

从源码安装TensorFlow

片刻
 片刻
发布于 2017/06/12 20:12
字数 2879
阅读 281
收藏 0
点赞 0
评论 0

 

 

原文链接 : https://www.tensorflow.org/install/install_sources

译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=10029599

贡献者 : 片刻 ApacheCN Apache中文网

本指南介绍了如何将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 -/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
35953210 Invoking `python` or `ipython` generates the following error:

ImportError: cannot import name pywrap_tensorflow

 

© 著作权归作者所有

共有 人打赏支持
片刻
粉丝 93
博文 268
码字总数 306559
作品 0
海淀
高级程序员
TensorFlow平台的搭建

一、TensorFlow介绍 TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数...

qq_39525832 ⋅ 05/28 ⋅ 0

机器学习Tensorflow笔记4:iOS通过Core ML使用Tensorflow训练模型

Tensorflow是Google推出的人工智能框架,而Core ML是苹果推出的人工智能框架,两者是有很大的区别,其中Tensorflow是包含了训练模型和评估模型,Core ML只支持在设备上评估模型,不能训练模型...

ImWiki ⋅ 05/16 ⋅ 0

第3章 TensorFlow入门

第3章 TensorFlow入门 TensorFlow是Google创造的数值运算库,作为深度学习的底层使用。本章包括: TensorFlow介绍 如何用TensorFlow定义、编译并运算表达式 如何寻求帮助 注意:TensorFlow暂...

优惠券发放 ⋅ 05/31 ⋅ 0

TensorFlow集成TensorRT环境配置

本文前提是cuda和cudnn以及TensorRT已经安装完毕,具体详情,可以参考上一篇文章: https://developer.nvidia-china.com/forum.php?mod=viewthread&tid=8767&extra=page%3D1 TensorRT下载地址...

AI科技大本营 ⋅ 04/26 ⋅ 0

使用Anaconda安装TensorFlow

一、什么是Anaconda? 简单来说,Anaconda是一个包管理器和环境管理器。当安装好Anaconda并开始运行时,就会发现我们电脑里面安装好的环境和依赖包都可以在Anaconda里面找到,管理(安装、更...

卫莨 ⋅ 04/14 ⋅ 0

anaconda3 安装tensorflow 报Cannot remove entries fro

今天要在ananconda3 下安装Keras & TensorFlow 结果第一个很顺利,但是第二个的时候就报错了 [root@worker01 bin]# ./pip3.6 install tensorflow Collecting tensorflow Using cached https:......

yuri_cto ⋅ 06/02 ⋅ 0

手把手教你eclipse集成Python+Tensorflow环境

1.安装Eclipse 百度Eclipse安装,网上有很多的教程,要先安装Eclipse就必须先安装JDK,这些百度一下下载就可以了,至于安装过程你只需 要一直点击下一步默认安装就行,选择版本的话就选择第一...

qq_33407981 ⋅ 04/20 ⋅ 0

史上最全TensorFlow学习资源汇总

来源 悦动智能(公众号ID:aibbtcom) 本篇文章将为大家总结TensorFlow纯干货学习资源,非常适合新手学习,建议大家收藏。 ▌一 、TensorFlow教程资源 1)适合初学者的TensorFlow教程和代码示...

悦动智能 ⋅ 04/12 ⋅ 0

开发者注意啦,谷歌宣布开源 Swift for TensorFlow

雷锋网(公众号:雷锋网) AI 研习社按,今年三月,谷歌在 TensorFlow 开发者峰会上公开演示了 Swift for TensorFlow,近日,TensorFlow 官网宣布 Swift for TensorFlow 已在 GitHub 上开源,地...

思颖 ⋅ 04/28 ⋅ 0

Tensorflow快餐教程(1) - 30行代码搞定手写识别

去年买了几本讲tensorflow的书,结果今年看的时候发现有些样例代码所用的API已经过时了。看来自己维护一个保持更新的Tensorflow的教程还是有意义的。这是写这一系列的初心。 快餐教程系列希望...

lusing ⋅ 04/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

iExec Blockchain Marketplace for Cloud

iExec Releases the First-Ever Blockchain Marketplace for Trading Cloud Computing Berlin, Germany, May 29, 2018. iExec has released its blockchain-based decentralized cloud marke......

openthings ⋅ 35分钟前 ⋅ 0

OSChina 周二乱弹 —— 加班的代码不要枉费了我的童子功

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《29》- 未完成乐队 《29》- 未完成乐队 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :#看球提醒# 02:00 巴西v...

小小编辑 ⋅ 55分钟前 ⋅ 15

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 今天 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部