本文出自 掘金翻譯計劃 正在組織翻譯的 TensorFlow 官方文檔。若是您有興趣,歡迎 申請成爲譯者,學習完譯者教程後,參與到文章和文檔的翻譯和及對當中。咱們也正在招募 TensorFlow 譯者,歡迎積極參加。前端
這篇指南說明如何在 macOS 上安裝 TensorFlow。python
注意:從 v1.2 開始,TensorFlow 再也不爲 macOS 提供 GPU 支持。android
你必須選擇使用哪一種方式來安裝 TensorFlow。有如下方式:ios
咱們推薦使用 virtualenv 進行安裝。 Virtualenv 是與其餘 Python 開發隔離的虛擬 Python 環境,使得在同一臺機器上不受其餘 Python 程序的干擾。 在 virtualenv 安裝過程當中,你不只要安裝 TensorFlow,還需安裝 TensorFlow 所需的軟件包(其實很簡單)。 要開始使用 TensorFlow,只須要『激活』虛擬環境。 總而言之,virtualenv 爲安裝和運行 TensorFlow 提供了一個安全可靠的機制。git
使用本地的 pip 會在系統裏直接安裝 TensorFlow,無需任何容器或虛擬環境系統。然而因爲本地安裝並非徹底封閉的,所以本地安裝可能會受到系統上其餘基於 Python 安裝軟件的干擾,或者影響到這類軟件。 此外,你可能還須要禁用系統完整性保護(SIP)才能進行本地安裝。 可是,若是你瞭解 SIP、pip 和你本地的 Python 環境,那麼使用本地 pip 安裝會相對容易一些。github
Docker 則會將 TensorFlow 安裝與機器上的現有軟件包徹底隔離。 Docker 容器包含 TensorFlow 及其全部依賴項。 請注意,Docker 鏡像可能很是大(幾百 MB)。 若是你將 TensorFlow 集成到已經使用 Docker 的較大應用程序體系結構中,則能夠選擇 Docker 安裝。docker
在 Anaconda 中,你可使用 conda 來建立虛擬環境。可是,在 Anaconda 中,咱們建議使用 pip install
而不是 conda install
命令來安裝 TensorFlow。shell
注意: conda 包由社區提供支持,而非正式支持。也就是說,TensorFlow 團隊既不測試也不維護 conda 包。 使用此包請自行承擔相關風險。macos
經過執行下面的步驟來使用 Virtualenv 安裝 TensorFlow:windows
啓動終端。你須要在命令行中執行下面全部的步驟。
經過下面的命令安裝 pip 和 virtualenv:
$ sudo easy_install pip $ pip install --upgrade virtualenv
經過執行下面的命令來建立虛擬環境:
$ virtualenv --system-site-packages targetDirectory # 對應 Python 2.7 $ virtualenv --system-site-packages -p python3 targetDirectory # 對應 Python 3.n
其中 targetDirectory 表示 virtualenv 目錄樹所在的頂層路徑。 咱們假設 targetDirectory 爲 ~/tensorflow
,但你也能夠選擇任何你喜歡的路徑。
經過執行下面的命令來激活虛擬環境:
$ source ~/tensorflow/bin/activate # 若是使用 bash, sh, ksh 或 zsh
$ <b>source ~/tensorflow/bin/activate.csh</b> # 若是使用 csh 或 tcsh </pre>
前面的 `source` 命令會將你的命令行提示更改成如下內容:
<pre> (tensorflow)$ </pre>
複製代碼
確保安裝的 pip 版本大於或等於 8.1:
(tensorflow)$ easy_install -U pip
執行下面的命令會將 TensorFlow 及其所有依賴安裝至 Virtualenv 環境中:
(tensorflow)$ pip install --upgrade tensorflow # 對應 Python 2.7 (tensorflow)$ pip3 install --upgrade tensorflow # 對應 Python 3.n
(可選)若是第 6 步失敗了(一般多是由於你使用的 pip 版本小於 8.1),你還能夠經過下面的命令安裝 TensorFlow:
$ pip install --upgrade tfBinaryURL # Python 2.7 $ pip3 install --upgrade tfBinaryURL # Python 3.n
其中 tfBinaryURL 指向 TensorFlow Python 軟件包所在的 URL。 合適的 tfBinaryURL 取決於你的操做系統和 Python 版本。你能夠在here 找到你係統所對應的 tfBinaryURL。 例如,若是你要在安裝了 Python 2.7 的 macOS 上安裝 TensorFlow,那麼能夠執行下面的命令:
$ pip3 install --upgrade \ https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.4.0rc0-py2-none-any.whl
若是你遇到了任何安裝問題,請查看 常見安裝問題.
安裝 TensorFlow 以後,你須要 驗證安裝 來確保 TensorFlow 可以正常工做。
注意,每當你使用一個新的 Shell 來使用 TensorFlow 時,你必須激活 virtualenv 環境。 若是 virtualenv 環境沒有被激活(即命令行提示符中沒有 (tensorflow)
),使用下面的命令能夠激活虛擬環境:
$ source ~/tensorflow/bin/activate # bash, sh, ksh 或 zsh $ source ~/tensorflow/bin/activate.csh # csh 或 tcsh
若是你的終端提示變成下面的樣子,證實 TensorFlow 的環境已經激活:
(tensorflow)$
當 virtualenv 環境激活後,你就能夠在 Shell 裏運行 TensorFlow 程序了。
當你使用完 TensorFlow 後,你還能夠解除虛擬環境:
(tensorflow)$ deactivate
這時命令行提示將會變回你激活虛擬環境以前的樣子。
若是你但願卸載 TensorFlow,只須要簡單的刪除你建立的目錄樹便可。例如:
$ rm -r ~/tensorflow
咱們已經將 TensorFlow 的二進制編譯版上傳到了 PyPI 中。所以你能夠直接使用 pip 進行安裝。setup.py 裏要求的包 列出了 pip 須要安裝或升級的包。
要安裝 TensorFlow,你的系統必須至少包含一個如下版本的 Python:
若是你的系統沒有安裝適當版本的 Python,那麼趕忙安裝吧。
在安裝 Python 時,你可能須要關閉系統完整性保護(SIP)來容許安裝非 Mac App Store 的程序。
Pip 能安裝並管理 Python 編寫的軟件包。若是你想要經過本地 pip 進行安裝,你的系統至少應該有包含下面命令中的一個:
pip
, 對應 Python 2.7pip3
, 對應 Python 3.n.若是你安裝了 python,可能 pip
或 pip3
已經安裝在你的系統上了。爲了肯定它們是否真的安裝在系統裏, 可使用下面的命令:
$ pip -V # 對應 Python 2.7 $ pip3 -V # 對應 Python 3.n
咱們強烈推薦使用 8.1 或更高版本的 pip 或 pip3 來安裝 TensorFlow。 若是你沒有安裝的話,能夠經過下面的命令來升級當前的 pip:
$ sudo easy_install --upgrade pip $ sudo easy_install --upgrade six
假設你的 Mac 上已經安裝了依賴的軟件,請遵循下面的步驟:
經過下面的一個命令來安裝 TensorFlow:
$ pip install tensorflow # Python 2.7; CPU 支持 $ pip3 install tensorflow # Python 3.n; CPU 支持若是前面的命令執行完成了,那麼接下來你應該 驗證安裝.
(可選)若是第 1 步失敗了,那麼能夠經過下面的命令安裝最新版的 TensorFlow:
$ sudo pip install --upgrade tfBinaryURL # Python 2.7 $ sudo pip3 install --upgrade tfBinaryURL # Python 3.n
其中 tfBinaryURL 指向 TensorFlow Python 軟件包的所在 URL。 合適的 tfBinaryURL 取決於你的操做系統和 Python 版本。你能夠在here 找到你係統所對應的 tfBinaryURL。 例如,若是你要在安裝了 Python 2.7 的 macOS 上安裝 TensorFlow,那麼能夠執行下面的命令:
$ pip3 install --upgrade \ https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.4.0rc0-py2-none-any.whl
TensorFlow 安裝完成後,你應該驗證安裝是否能使 TensorFlow 正確工做。
執行下面的命令能夠卸載 TensorFlow:
$ pip uninstall tensorflow $ pip3 uninstall tensorflow
遵循下面的步驟可經過 Docker 安裝 TensorFlow:
1. 安在你的機器上安裝 Docker,請參考
[Docker 文檔](https://docs.docker.com/engine/installation/#/on-macos-and-windows).
2. 從包含 TensorFlow 的鏡像中建立並啓動 Docker 容器。
複製代碼
本節的其他部分將介紹如何啓動Docker容器。
要啓動包含 TensorFlow 鏡像的 Docker 容器,請輸入如下指令:
$ docker run -it -p hostPort:containerPort TensorFlowImage
其中:
-p hostPort:containerPort 可選。若是你想要在 shell 命令行中運行 TensorFlow,忽略這個選項。若是你想要在 Jupyter notebooks 中運行這個程序,將 hostPort 和 containerPort 都設置爲 8888
。
若是你想要運行包含 TensorBoard 的容器,增長第二個 -p
參數來指定宿主端口和容器端口爲 6006。
TensorFlowImage 是必須的。它指定了你的 Docker 容器。你必須指定下面其中一個值:
gcr.io/tensorflow/tensorflow
: TensorFlow 二進制鏡像。gcr.io/tensorflow/tensorflow:latest-devel
: TensorFlow 二進制鏡像和源代碼。gcr.io
是谷歌容器倉庫。注意,TensorFlow 鏡像一樣在 dockerhub 上可用。
例如,下面的命令從 TensorFlow CPU 鏡像啓動了一個 Docker 容器,從而你能夠在這個命令行裏執行 TensorFlow 程序:
$ docker run -it gcr.io/tensorflow/tensorflow bash
下面的命令一樣是從一個 TensorFlow CPU 的鏡像啓動的容器。然而在這個容器中,你還能夠在 Jupyter notebook 裏 運行 TensorFlow 程序:
$ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow
Docker 會在第一次啓動容器時下載對應的鏡像。
如今你應該驗證安裝。
Anaconda 的安裝由社區提供,而非官方支持。
請按照下面的步驟在 Anaconda 環境中安裝 TensorFlow:
按照Anaconda 下載網站中的指南來下載並安裝 Anaconda。
調用如下命令新建一個名字叫 tensorflow 的 conda 環境來運行某一版本的 Python:
$ conda create -n tensorflow pip python=2.7 # or python=3.3, etc.
使用以下命令來激活 conda 環境:
$ source activate tensorflow (tensorflow)$ # Your prompt should change
運行以下格式的命令來在你的 conda 環境中安裝 TensorFlow:
(tensorflow)$ pip install --ignore-installed --upgrade TF_PYTHON_URL
其中 TF_PYTHON_URL 是 TensorFlow Python 包的 URL。例如,以下命令安裝了僅支持 CPU 的 Python 2.7 版本下的 TensorFlow:
(tensorflow)$ pip install --ignore-installed --upgrade \ https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.4.0rc0-py2-none-any.whl
下面的步驟可以驗證 TensorFlow 是否已正確安裝:
1. 肯定你已經具有了運行 TensorFlow 程序的運行環境。
2. 運行一個簡短的 TensorFlow 程序。
複製代碼
若是你已經安裝了 pip、virtualenv 或者 Anaconda,那麼:
1. 運行終端。
2. 若是你使用 virtualenv 或 Anaconda 進行的安裝,請激活你的容器。
3. 若是你是使用 TensorFlow 源碼進行的安裝,請切換到除了包含 TensorFlow 源碼的任意目錄下。
複製代碼
若是你使用 Docker 進行安裝,啓動一個運行 bash 的 Docker 容器,例如:
$ docker run -it gcr.io/tensorflow/tensorflow bash
在命令行中輸入下面的命令調用 Python:
$ python
在 Python 交互命令行環境中輸入下面的代碼:
# 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 中進行搜索。若是 Stack Overflow 沒有相應的解決方案,請在 Stack Overflow 上詢問一個有關它的新問題,並指定 tensorflow
標籤。
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 | 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' |
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 |
一些安裝方法中須要 TensorFlow Python 包的 URL,你所聲明的值取決下面兩個因素:
這個部分記錄了 maxOS 相關安裝的 URL 值
https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.4.0rc0-py2-none-any.whl
https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.4.0rc0-py3-none-any.whl
除非你遇到了與 protobuf pip package 相關的問題,不然你能夠直接跳過該部分。
注意:若是你的 TensorFlow 程序運行速度很慢,你可能有一個和 protobuf pip package 相關的問題。
TensorFlow pip 包依賴於 3.1 版本的 protobuf pip package。從 PyPI 下載的 protobuf pip package (使用pip install protobuf 命令) 是一個含有序列化、反序列化實現的純 Python 庫,可能比 C++ 的實現慢 10 到 50 倍。Protobuf 同時也支持針對 Python 包的一個二進制擴展,基於快速的 C++ 解析。這個擴展在純 Python 的標準 pip 包中是沒有的。咱們已經建立了一個自定義的二進制 pip 包給含有二進制擴展的 protobuf。要安裝自定義的二進制 protobuf pip package,執行以下的命令
對應 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.
掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。