当前位置: 首页>>技术教程>>正文


在Mac OS X上安装TensorFlow

qingchuan 技术教程 , , 去评论

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

mac-os-x

确定如何安装TensorFlow

您必须选择安装TensorFlow的方式,支持的选择如下:

建议使用virtualenv安装。
VIRTUALENV是与其他Python开发隔离的虚拟Python环境,不会影响同一台机器上的其他Python程序。在使用virtualenv的安装过程中,需要安装TensorFlow以及TensorFlow所需的所有软件包。 要开始使用TensorFlow,您只需要"activate"的虚拟环境。总而言之,virtualenv为安装和运行TensorFlow提供了一个安全可靠的机制。

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

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

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

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

使用virtualenv进行安装

使用Virtualenv安装TensFlow的步骤:

  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      # If using bash, sh, ksh, or zsh
    $ source ~/tensorflow/bin/activate.csh  # If using csh or tcsh 

    前面的source命令会将您的提示更改为以下内容:

     (tensorflow)$ 
  5. 确保安装的pip≥8.1:

     (tensorflow)$ easy_install -U pip
  6. 执行以下命令之一,将TensorFlow以及所需的所有软件包安装到激活的Virtualenv环境中:

     (tensorflow)$ pip install --upgrade tensorflow      # for Python 2.7
     (tensorflow)$ pip3 install --upgrade tensorflow     # for Python 3.n
    
  7. 可选的。如果步骤6失败(通常是因为您调用低于8.1的pip版本),请通过执行以下命令在活动的virtualenv环境中安装TensorFlow:

     $ pip install --upgrade tfBinaryURL   # Python 2.7
     $ pip3 install --upgrade tfBinaryURL  # Python 3.n 

    其中tfBinaryURL标识TensorFlow Python包的URL。tfBinaryURL的值取决于操作系统和Python版本,参考这里。例如,如果要安装适用于Mac OS X的TensorFlow(Python 2.7),则在活动的Virtualenv中安装TensorFlow的命令如下所示:

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

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

下一步

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

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

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

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

 (tensorflow)$ 

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

使用TensorFlow完成后,执行以下命令来停用环境:

 (tensorflow)$ deactivate 

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

卸载TensorFlow

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

 $ rm -r ~/tensorflow 

用本地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安装,则必须在系统上安装以下pip之一:

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

pippip3在安装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 support
     $ pip3 install tensorflow     # Python 3.n; CPU support
    

    If the preceding command runs to completion, you should now validate your installation.

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

     $ sudo pip  install --upgrade tfBinaryURL   # Python 2.7
     $ sudo pip3 install --upgrade tfBinaryURL   # Python 3.n 

    其中tfBinaryURL标识TensorFlow Python包的URL。tfBinaryURL的值取决于操作系统和Python版本,参考这里。例如,如果要安装TensorFlow for Mac OS和Python 2.7,请发出以下命令:

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

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

下一步

安装TensorFlow后,需要验证您的安装,以确认安装正常。

卸载TensorFlow

要卸载TensorFlow,执行以下命令之一:

$ pip uninstall tensorflow
$ pip3 uninstall tensorflow 

使用Docker进行安装

使用Docker安装TensorFlow的步骤:

  1. 在您的机器上安装Docker,见Docker文档

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

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

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

 $ docker run -it -p hostPort:containerPort TensorFlowImage 

其中:

  • -p hostPort:containerPort是可选的。如果要从shell运行TensorFlow程序,请忽略此选项。如果要从Jupyter Notebooks运行TensorFlow程序,请同时设置HOSTPORTcontainerPort8888。如果您想在容器内运行TensorBoard,请添加第二个-p标志,设置两者HOSTPORTcontainerPort为6006。
  • TensorFlowImage是必须的。它标识了Docker容器,取值如下:
    • gcr.io/tensorflow/tensorflow:TensorFlow二进制映像。
    • gcr.io/tensorflow/tensorflow:latest-devel:TensorFlow二进制映像加源代码。

gcr.io是Google容器注册表。请注意,一些TensorFlow映像也可在dockerhub找到。

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

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

以下命令也可以在Docker容器中启动TensorFlow CPU二进制映像。在Docker容器中,您也可以在Jupyter Notebooks中运行TensorFlow程序:

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

Docker首次其中时会下载TensorFlow二进制图像。

下一步

然后验证您的安装

使用Anaconda安装

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

在Anaconda环境中安装TensorFlow的步骤:

  1. 根据 Anaconda下载网站下载并安装Anaconda。

  2. 创建“conda”的环境tensorflow,执行以下命令:

    $ conda create -n tensorflow
  3. 执行以下命令激活conda环境:

    $ source activate tensorflow
     (tensorflow)$  # Your prompt should change
  4. 执行以下命令,在您的公共环境中安装TensorFlow:

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

    其中TF_PYTHON_URL是个TensorFlow Python包的URL。例如,以下命令将安装CPU-only版本的TensorFlow for Python 2.7:

     (tensorflow)$ pip install --ignore-installed --upgrade \
     https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.3.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中输入以下短程序:

# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

如果系统输出以下内容,则可以开始编写TensorFlow程序了:

Hello, TensorFlow!

如果您是TensorFlow新手,请参阅TensorFlow入门

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

常见的安装问题

我们依靠Stack Overflow来记录TensorFlow安装问题及其补救措施。下表列出了一些常见安装问题的Stack Overflow答案的链接。

Stack Overflow链接 错误信息
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 pip install操作之后,系统返回:

OSError: [Errno 1] Operation not permitted
33622842 一个导入TensorFlow语句触发如下错误:

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'
42075397 一个pip install命令触发以下错误:

...
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,值取决于2个因素:

  • 操作系统
  • Python版本

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

Python 2.7

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

Python 3.4,3.5或3.6

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

Protobuf pip软件包3.1

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

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

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

  • 对于Python 2.7:

    $ pip install --upgrade \
    https://storage.googleapis.com/tensorflow/mac/cpu/protobuf-3.1.0-cp27-none-macosx_10_11_x86_64.whl
  • 对于Python 3.n:

    $ pip3 install --upgrade \
    https://storage.googleapis.com/tensorflow/mac/cpu/protobuf-3.1.0-cp35-none-macosx_10_11_x86_64.whl

安装此protobuf软件包将覆盖现有的protobuf软件包。请注意,二进制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.

文本整理自

本文由《纯净的天空》出品。文章地址: https://vimsky.com/article/3619.html,未经允许,请勿转载。