當前位置: 首頁>>技術教程>>正文


在Mac OS X上安裝TensorFlow

本指南介紹如何在Mac OS X上安裝TensorFlow。

mac-os-x

確定如何安裝TensorFlow

您必須選擇安裝TensorFlow的方式,支持的選擇如下:

  • virtualenv
  • “native” pip
  • Docker
  • 從源碼安裝,見單獨的指南

建議使用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/zh-tw/article/3619.html,未經允許,請勿轉載。