本指南介紹如何在Mac OS X上安裝TensorFlow。
確定如何安裝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的步驟:
-
啟動一個終端(shell),在此shell中的執行後續步驟。
-
執行以下命令安裝pip和virtualenv:
$ sudo easy_install pip $ sudo pip install --upgrade virtualenv
-
執行以下命令之一創建一個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
,當然也可以選擇任何其他目錄。 -
執行以下命令之一激活virtualenv環境:
$ source ~/tensorflow/bin/activate # If using bash, sh, ksh, or zsh $ source ~/tensorflow/bin/activate.csh # If using csh or tcsh
前麵的
source
命令會將您的提示更改為以下內容:(tensorflow)$
-
確保安裝的pip≥8.1:
(tensorflow)$ easy_install -U pip
-
執行以下命令之一,將TensorFlow以及所需的所有軟件包安裝到激活的Virtualenv環境中:
(tensorflow)$ pip install --upgrade tensorflow # for Python 2.7 (tensorflow)$ pip3 install --upgrade tensorflow # for Python 3.n
-
可選的。如果步驟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.7pip3
,為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上安裝了必備軟件,請執行以下步驟:
-
通過調用以下命令安裝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.
-
(可選)如果步驟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的步驟:
-
在您的機器上安裝Docker,見Docker文檔。
-
啟動包含TensorFlow二進製映像之一的Docker容器。
本節的其餘部分將介紹如何啟動Docker容器。
要啟動保存TensorFlow二進製映像的Docker容器,請輸入以下命令:
$ docker run -it -p hostPort:containerPort TensorFlowImage
其中:
- -p hostPort:containerPort是可選的。如果要從shell運行TensorFlow程序,請忽略此選項。如果要從Jupyter Notebooks運行TensorFlow程序,請同時設置HOSTPORT和containerPort為
8888
。如果您想在容器內運行TensorBoard,請添加第二個-p
標誌,設置兩者HOSTPORT和containerPort為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的步驟:
-
根據 Anaconda下載網站下載並安裝Anaconda。
-
創建“conda”的環境
tensorflow
,執行以下命令:$ conda create -n tensorflow
-
執行以下命令激活conda環境:
$ source activate tensorflow (tensorflow)$ # Your prompt should change
-
執行以下命令,在您的公共環境中安裝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安裝,請執行以下操作:
- 確保您已準備好運行TensorFlow程序的環境。
- 運行一個簡短的TensorFlow程序。
準備你的環境
如果您使用native pip、virtualenv或Anaconda來安裝,請執行以下操作:
- 啟動一個終端
- 如果您安裝了virtualenv或Anaconda,請激活您的容器。
- 如果您安裝了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.