文档章节

在Mac OS X上安装TensorFlow

片刻
 片刻
发布于 2017/06/08 19:09
字数 4217
阅读 381
收藏 0

 

 

本指南介绍如何在Mac OS X上安装TensorFlow。

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

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

贡献者 : 片刻 ApacheCN Apache中文网

确定哪个TensorFlow要安装

您必须选择要安装的TensorFlow的类型。您的选择如下:

  • TensorFlow仅支持CPU支持。如果您的系统没有NVIDIACUDA®GPU,则应安装此版本。请注意,具有CPU支持的TensorFlow通常比具有GPU支持的TensorFlow更容易安装。因此,即使您有NVIDIA CUDA GPU,我们建议先安装此版本作为诊断步骤,以防您在安装具有GPU支持的TensorFlow时出现问题。
  • TensorFlow支持GPU。TensorFlow程序通常在GPU上比在CPU上运行得更快。因此,如果您的系统具有NVIDIA CUDA GPU满足以下所示的先决条件,并且需要运行性能关键型应用程序,则应最终安装此版本。

运行TensorFlow支持GPU的要求

如果您使用本指南介绍的机制之一来安装具有GPU支持的TensorFlow,则系统上必须安装以下NVIDIA软件:

  • CUDA工具包8.0。有关详细信息,请参阅 NVIDIA的文档。确保您将相关CUDA路径名附加到LD_LIBRARY_PATH环境变量中,如NVIDIA文档中所述。
  • 与CUDA Toolkit 8.0相关的NVIDIA驱动程序。
  • cuDNN v5.1。有关详细信息,请参阅 NVIDIA的文档。确保CUDA_HOME按照NVIDIA文档中的描述创建环境变量。
  • 具有CUDA Compute Capability 3.0或更高版本的GPU卡。有关 支持的GPU卡的列表,请参阅NVIDIA文档

如果您有较早版本的上述软件包,请升级到指定的版本。如果无法升级,您仍然可以运行支持GPU的TensorFlow,但只有当您同时执行以下操作时:

  • 从源头安装TensorFlow,如这里所述 。
  • 至少安装或升级到以下NVIDIA版本:
    • CUDA工具包7.0或更高版本
    • cuDNN v3以上
    • 具有CUDA Compute Capability 3.0或更高版本的GPU卡。

 

确定如何安装TensorFlow

您必须选择安装TensorFlow的机制。支持的选择如下:

  • virtualenv
  • "native" pip
  • Docker
  • 源码安装,这是专家,并在单独的指南中记录。

我们建议使用virtualenv安装。 Virtualenv 是与其他Python开发隔离的虚拟Python环境,不能在同一台机器上干扰或受到其他Python程序的影响。在virtualenv安装过程中,您将不仅安装TensorFlow,还可以安装TensorFlow所需的所有软件包。(这实际上很简单。)要开始使用TensorFlow,只需要“激活”虚拟环境。总而言之,virtualenv为安装和运行TensorFlow提供了一个安全可靠的机制。

Native pip直接在您的系统上安装TensorFlow,而不需要通过任何容器或虚拟环境系统。由于本地点安装不被关闭,点安装可能会干扰或受到系统上其他基于Python的安装的影响。此外,您可能需要禁用系统完整性保护(SIP)才能通过本机点安装。但是,如果您了解SIP,pip和您的Python环境,则本地点安装相对容易执行。

Docker将TensorFlow安装与机器上预先存在的包完全隔离。Docker容器包含TensorFlow及其所有依赖项。请注意,Docker图像可能相当大(数百MB)。如果您将TensorFlow集成到已经使用Docker的较大应用程序架构中,则可以选择Docker安装。

 

重要提示:Docker目前不支持在Mac OS上支持GPU的TensorFlow; 也就是说,在Mac OS上,Docker只支持具有CPU支持的TensorFlow。

在Anaconda中,您可以使用conda创建虚拟环境。但是,在Anaconda内,我们建议使用pip install命令安装TensorFlow ,而不是使用该conda install命令。

注意: conda包是社区支持的,没有正式支持。也就是说,TensorFlow团队既不测试也不维护公寓套餐。使用该包,您自己承担风险。

 

使用virtualenv进行安装

采取以下步骤安装TensFlow与Virtualenv:

  1. 启动一个终端(一个shell)。您将执行此shell中的所有后续步骤。

  2. 通过发出以下命令来安装pip和virtualenv:

    $ sudo easy_install pip

    $ sudo pip install --upgrade virtualenv

  3. 通过发出以下格式之一的命令来创建一个virtualenv环境:

    $ virtualenv --system-site-packages  targetDirectory#for Python 2.7

    $ virtualenv --system-site-packages -p python3  targetDirectory#for Python 3.n

    targetdirectory中标识的virtualenv树的顶端。我们的说明假定targetDirectory 是~/tensorflow,但您可以选择任何目录。
  4. 通过发出以下命令之一激活virtualenv环境:

    $ source〜/ tensorflow / bin / activate       #如果使用bash,sh,ksh或zsh

    $ source〜/ tensorflow / bin / activate.csh   #如果使用csh或tcsh

    上述source命令应将您的提示更改为以下内容:

    (tensorflow)$

  5. 如果系统上安装了pip版本8.1或更高版本,请发出以下命令之一以将TensorFlow和TensorFlow所需的所有软件包安装到活动的Virtualenv环境中:

    $ pip install --upgrade tensorflow       #for Python 2.7

    $ pip3 install --upgrade tensorflow      #for Python 3.n

    $ pip install --upgrade tensorflow-gpu   #for Python 2.7和GPU

    $ pip3 install --upgrade tensorflow-gpu  #for Python 3.n和GPU

    如果上述命令成功,请跳过步骤6.如果失败,请执行步骤6。

  6. 可选的。如果步骤5失败(通常是因为您调用低于8.1的pip版本),请通过发出以下格式的命令在活动的virtualenv环境中安装TensorFlow:

    $ pip install --upgrade  TF_BINARY_URL    #Python 2.7

    $ pip3 install --upgrade  TF_BINARY_URL   #Python 3.n

    其中TF_BINARY_URL标识TensorFlow Python包的URL。与适当值 TF_BINARY_URL取决于操作系统,Python版本,并支持GPU上。找到相应的值 TF_BINARY_URL为您的系统 在这里。例如,如果要安装适用于Mac OS X,Python 2.7和仅支持CPU的TensorFlow,则在活动的Virtualenv中安装TensorFlow的命令如下所示:

    $ pip3 install --upgrade \  https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.1.0-py2-none-any.whl

如果遇到安装问题,请参阅 常见安装问题

下一步

安装TensorFlow后, 验证您的安装 以确认安装是否正常工作。

请注意,每次在新的shell中使用TensorFlow时,必须激活virtualenv环境。如果virtualenv环境当前未处于活动状态(即不提示)(tensorflow),请调用以下命令之一:

$ source〜/ tensorflow / bin / activate       #bash,sh,ksh或zsh

$ source〜/ tensorflow / bin / activate.csh   #csh或tcsh

您的提示将转换为以下内容,表示您的张量流环境处于活动状态:

(tensorflow)$

当virtualenv环境处于活动状态时,您可以从此shell运行TensorFlow程序。

使用TensorFlow完成后,您可以通过发出以下命令来停用环境:

(tensorflow)$ deactivate

提示将恢复为默认提示符(由定义PS1)。

卸载TensorFlow

如果要卸载TensorFlow,只需删除您创建的树。例如:

$ rm -r〜/ tensorflow

用native pip安装

我们已将TensorFlow二进制文件上传到PyPI。因此,您可以通过pip安装TensorFlow。

 setup.py的 REQUIRED_PACKAGES部分 列出了pip将安装或升级的软件包。

先决条件:Python

为了安装TensorFlow,您的系统必须包含以下Python版本之一:

  • Python 2.7
  • Python 3.3+

如果您的系统尚未具有以前的一个Python版本, 立即安装

安装Python时,您可能需要禁用系统完整性保护(SIP),以允许Mac App Store以外的其他实体安装软件。

先决条件:pip

Pip安装和管理用Python编写的软件包。如果您打算使用本机点安装,则必须在系统上安装以下口味之一:

  • pip, 对于Python 2.7
  • pip3,对于Python 3.n.

pip或者pip3安装Python时可能安装在您的系统上。要确定pip或pip3是否实际安装在系统上,请执行以下命令之一:

$ pip -V   #for Python 2.7

$ pip3 -V  #for Python 3.n

我们强烈建议您使用pip或pip3版本8.1或更高版本,以安装TensorFlow。如果未安装pip或pip3 8.1或更高版本,请执行以下命令进行安装或升级:

$ sudo easy_install --upgrade pip

$ sudo easy_install --upgrade six

安装TensorFlow

假设您的Mac上安装了必备软件,请执行以下步骤:

  1. 通过调用以下命令之一安装TensorFlow :

    $ pip install tensorflow       #Python 2.7; CPU支持(无GPU支持)

    $ pip3 install tensorflow      #Python 3.n; CPU支持(无GPU支持)

    $ pip install tensorflow-gpu   #Python 2.7; GPU支持

    $ pip3 install tensorflow-gpu  #Python 3.n; GPU支持

    如果上述命令运行完毕,则应该 验证安装

  2. (可选)如果步骤1失败,请通过发出以下格式的命令安装最新版本的TensorFlow:

    $ sudo pip install --upgrade  TF_BINARY_URL    #Python 2.7

    $ sudo pip3 install --upgrade  TF_BINARY_URL   #Python 3.n

    其中TF_BINARY_URL标识TensorFlow Python包的URL。与适当值TF_BINARY_URL取决于操作系统,Python版本,并支持GPU上。找到相应的值TF_BINARY_URL 这里。例如,如果要安装适用于Mac OS,Python 2.7和仅支持CPU的TensorFlow,请发出以下命令:

    $ sudo pip3 install --upgrade \  https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.1.0-py2-none-any.whl

    如果上述命令失败,请参阅 常见安装问题

下一步

安装TensorFlow后, 验证您的安装 以确认安装是否正常工作。

卸载TensorFlow

要卸载TensorFlow,请发出以下命令之一:

$ pip uninstall tensorflow

$ pip3 uninstall tensorflow

使用Docker进行安装

按照以下步骤通过Docker安装TensorFlow。

  1. 作为描述你的机器上安装泊坞窗 泊坞文档

  2. 启动包含TensorFlow二进制映像之一的Docker容器。

本节的其余部分将介绍如何启动Docker容器。

注意:您只能启动具有CPU支持的Docker容器。(Docker在Mac OS上不提供GPU支持)

要启动保存TensorFlow二进制映像的Docker容器,请输入以下格式的命令:

$ docker run -it -p hostPort:containerPort TensorFlowImage

哪里:

  • -p hostPort:containerPort是可选的。如果要从shell运行TensorFlow程序,请忽略此选项。如果要从Jupyter笔记本运行TensorFlow程序,请将hostPortcontainerPort设置 为8888。如果要在容器内运行TensorBoard,请添加第二个-p标志,将hostPortcontainerPort设置 为6006。
  •  需要TensorFlowImage。它标识了Docker容器。您必须指定以下值之一:

gcr.io是Google容器注册表。请注意,某些TensorFlow图片也可以在 dockerhub

例如,以下命令在Docker容器中启动TensorFlow CPU二进制映像,您可以在其中运行Shell中的TensorFlow程序:

$ docker run -it gcr.io/tensorflow/tensorflow bash

以下命令还在Docker容器中启动TensorFlow CPU二进制映像。但是,在这个Docker容器中,您可以在Jupyter笔记本中运行TensorFlow程序:

$ docker run -it -8888:8888 gcr.io/tensorflow/tensorflow

Docker将首次下载TensorFlow二进制图像。

下一步

您现在应该 验证您的安装

 

使用Anaconda进行安装

Anaconda安装是社区支持的,没有正式支持。

采取以下步骤在Anaconda环境中安装TensorFlow:

  1. 按照 Anaconda下载网站 上的说明下载并安装Anaconda。

  2. 创建一个tensorflow 通过调用以下命令命名的conda环境:

    $ conda create -n tensorflow

  3. 通过发出以下命令激活conda环境:

    $ source activate tensorflow

     (tensorflow)$#你的提示应该改变

  4. 发出以下格式的命令,以在您的公共环境中安装TensorFlow:

    (tensorflow)$ pip install --ignore-installed --upgrade $TF_PYTHON_URL 

    这里TF_PYTHON_URL是 在TensorFlow Python包的URL。例如,以下命令将安装仅适用于Python 2.7的仅限于CPU的版本的TensorFlow:

    (tensorflow)$ pip install --ignore-installed --upgrade \

     https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.1.0-py2-none-any.whl

 

 

验证您的安装

要验证您的TensorFlow安装,请执行以下操作:

  1. 确保您的环境准备运行TensorFlow程序。
  2. 运行一个简短的TensorFlow程序。

准备你的环境

如果您安装在native pip,virtualenv或Anaconda上,请执行以下操作:

  1. 启动一个终端
  2. 如果您安装了virtualenv或Anaconda,请激活您的容器。
  3. 如果您安装了TensorFlow源代码,请导航到 TensorFlow源代码之外的任何目录。

如果您通过Docker安装,请启动运行bash的Docker容器。例如:

$ docker run -it gcr.io/tensorflow/tensorflow bash

运行一个简短的TensorFlow程序

从你的shell调用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没有显示错误消息,请在Stack Overflow上提出一个新问题,并指定tensorflow标签。

堆栈溢出链接

错误信息

36159194

ImportError: libcudart.so.Version: cannot open shared object file:

No such file or directory
41991101

ImportError: libcudnn.Version: cannot open shared object file:

No such file or directory
42006320

ImportError: Traceback (most recent call last):

File ".../tensorflow/core/framework/graph_pb2.py", line 6, in 
from google.protobuf import descriptor as _descriptor
ImportError: cannot import name 'descriptor'
33623453

IOError: [Errno 2] No such file or directory:

'/tmp/pip-o6Tpui-build/setup.py'
35190574

SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify

failed
42009190

Installing collected packages: setuptools, protobuf, wheel, numpy, tensorflow

Found existing installation: setuptools 1.1.6
  Uninstalling setuptools-1.1.6:
  Exception:
  ...
  [Errno 1] Operation not permitted:
  '/tmp/pip-a1DXRT-uninstall/.../lib/python/_markerlib'
33622019

ImportError: No module named copyreg

37810228 During a pip install operation, the system returns:
OSError: [Errno 1] Operation not permitted
33622842 An import tensorflow statement triggers an error such as the following:
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/local/lib/python2.7/site-packages/tensorflow/__init__.py",
    line 4, in 
    from tensorflow.python import *
    ...
  File "/usr/local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_shape_pb2.py",
    line 22, in 
    serialized_pb=_b('\n,tensorflow/core/framework/tensor_shape.proto\x12\ntensorflow\"d\n\x10TensorShapeProto\x12-\n\x03\x64im\x18\x02
      \x03(\x0b\x32
      .tensorflow.TensorShapeProto.Dim\x1a!\n\x03\x44im\x12\x0c\n\x04size\x18\x01
      \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3')
  TypeError: __init__() got an unexpected keyword argument 'syntax'
42073336 An import tensorflow statement triggers the following error:
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.dylib locally
"import tensorflow" terminated by signal SIGSEGV (Address boundary error)
42075397 A pip install command triggers the following error:
...
You have not agreed to the Xcode license agreements, please run
'xcodebuild -license' (for user-level acceptance) or
'sudo xcodebuild -license' (for system-wide acceptance) from within a
Terminal window to review and agree to the Xcode license agreements.
...
  File "numpy/core/setup.py", line 653, in get_mathlib_info

    raise RuntimeError("Broken toolchain: cannot link a simple C program")

RuntimeError: Broken toolchain: cannot link a simple C program

TensorFlow Python包的URL

一些安装机制需要TensorFlow Python包的URL。您指定的值取决于三个因素:

  • 操作系统
  • Python版本
  • 仅CPU与GPU支持

本节介绍Mac OS安装的相关值。

Python 2.7

仅CPU:

https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.1.0-py2-none-any.whl 

GPU支持:

https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow_gpu-1.1.0-py2-none-any.whl

需要CUDA工具包8.0和CuDNN v5。有关其他版本,请参阅 从源安装TensorFlow

Python 3.4,3.5或3.6

仅CPU:

https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.1.0-py3-none-any.whl

GPU支持:

https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow_gpu-1.1.0-py3-none-any.whl

需要CUDA工具包8.0和CuDNN v5。有关其他版本,请参阅 从源安装TensorFlow

 

 

Protobuf pip软件包3.1

您可以跳过此部分,除非您看到与protobuf pip软件包相关的问题。

注意:如果您的TensorFlow程序运行缓慢,您可能会遇到与protobuf pip软件包相关的问题。

TensorFlow pip软件包取决于protobuf pip软件包版本3.1。从PyPI下载的protobuf pip软件包(在调用 pip install protobuf时)是一个仅包含Python的库,其中包含可执行比C ++实现慢10倍 - 50倍的原始序列化/反序列化的Python 实现。Protobuf还支持包含基于快速C ++的原语解析的Python包的二进制扩展。此扩展在标准的仅Python专用pip包中不可用。我们为protobuf创建了一个包含二进制扩展名的自定义二进制pip包。要安装自定义二进制protobuf pip包,请调用以下命令之一:

  • 对于Python 2.7:

$ pip install --upgrade \

  https://storage.googleapis.com/tensorflow/linux/cpu/protobuf-3.1.0-cp27-none-linux_x86_64.whl

 
  • 对于Python 3.n:

$ pip3 install --upgrade \

  https://storage.googleapis.com/tensorflow/linux/cpu/protobuf-3.1.0-cp35-none-linux_x86_64.whl

安装此protobuf软件包将覆盖现有的protobuf软件包。请注意,binary pip软件包已经支持大于64MB的protobufs,应该修复以下错误:

[libprotobuf ERROR google/protobuf/src/google/protobuf/io/coded_stream.cc:207]

A protocol message was rejected because it was too big (more than 67108864 bytes).

To increase the limit (or to disable these warnings), see

CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.

成为第一个赞同者

© 著作权归作者所有

片刻
粉丝 107
博文 269
码字总数 306754
作品 0
海淀
高级程序员
私信 提问
这些常见的机器学习工具,不知道的快来补课

随着人工智能的火热,很多企业甚至是数据挖掘爱好者开始尝试自己动手来挖掘数据中的价值。机器学习的基础设施包括数据、算法和工具。前面已经介绍了数据和算法方面的内容,本文将重点介绍机器...

异步社区
2018/09/25
0
0
Swift for TensorFlow 来啦!

Swift for TensorFlow 来啦! 斗大的标题,其实它很早就来了,只是今天TensorFlow官方开源了这个swift版本。作为一位在传销的路上渐行渐远的人工智能吃瓜群众,还是第一时间感受了一下,只能...

Nicholas_Jela
2018/04/27
0
0
Tensorflow-task(hse-aml/intro-to-dl,简单注释,答案,附图)

这是俄罗斯高等经济学院的系列课程第一门,Introduction to Advanced Machine Learning,第二周第一个编程作业。 这个作业一共两个任务,难易程度:容易。 1. 熟悉TensorFlow,计算RMS 2. 使...

s09094031
2018/04/21
0
0
TensorFlow给机器学习在移动端的运用

人工智能、机器学习都已走进了我们的日常,尤其是愈演愈热的大数据更是跟我们的生活息息相关,做 人工智能、数据挖掘的人在其他人眼中感觉是很高大上的,总有一种遥不可及的感觉,在我司也经...

程序猿拿Q
2018/11/02
40
0
tensorflow与流计算结合使用之一:tf+java

tensorflow与java结合 【导读】 随着TensorFlow的普及,越来越多的行业希望将Github中大量已有的TensorFlow代码和模型集成到自己的业务系统中,如何在常见的编程语言(Java、NodeJS等)中使用...

-九天-
07/04
53
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部