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


在Ubuntu上安裝TensorFlow

本指南介紹如何在Ubuntu上安裝TensorFlow。這些安裝說明也可以用於其他Linux衍生版本,但是我們隻在Ubuntu 14.04(或更高版本)上充分測試過這些說明。

ubuntu-tensorflow

確定要安裝哪一種TensorFlow

您必須選擇以下類型的TensorFlow之一來安裝:

  • TensorFlow僅支持CPU的版本。如果您的係統沒有NVIDIA®GPU,則必須安裝此版本。請注意,此版本的TensorFlow通常會更容易安裝(通常在5或10分鍾內可完成安裝)。因此,即使您有NVIDIA GPU,也可以先考慮安裝這個版本。
  • TensorFlow支持GPU的版本。 TensorFlow程序通常在GPU上的運行速度明顯高於CPU。因此,如果您的係統具有滿足下文所示前提條件的NVIDIA®GPU,並且您需要運行性能敏感的應用程序,則應該安裝GPU版本。

運行支持GPU的TensorFlow對NVIDIA的要求

如果您要安裝具有GPU支持的TensorFlow,那麽在您的係統上必須安裝以下NVIDIA軟件:

  • CUDA®工具包8.0。詳情請參閱NVIDIA的文檔。如NVIDIA文檔中所述,確保將相關的Cuda路徑名追加到LD_LIBRARY_PATH環境變量。
  • 與CUDA Toolkit 8.0相關的NVIDIA驅動程序。
  • cuDNN v6。詳情請參閱NVIDIA的文檔。如NVIDIA文檔中所述,確保創建CUDA_HOME環境變量。
  • 具有CUDA Compute Capability 3.0或更高版本的GPU卡。參考NVIDIA文檔列出支持的GPU卡。
  • libcupti-dev庫,即NVIDIA CUDA Profile Tools界麵。此庫提供高級分析支持。要安裝此庫,執行以下命令:

    $ sudo apt-get install libcupti-dev
    

如果您有更早版本的上述軟件包,請升級到指定的版本。如果無法升級,那麽您仍然可以運行支持GPU的TensorFlow,但需要執行以下操作時:

  • 從源文件中安裝TensorFlow從源安裝TensorFlow
  • 至少安裝或升級到以下NVIDIA版本:
    • CUDA工具包8.0或更高版本
    • cuDNN v3以上
    • 具有CUDA Compute Capability 3.0或更高版本的GPU卡。

確定如何安裝TensorFlow

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

我們建議使用virtualenv安裝。
VIRTUALENV是與其他Python開發隔離的虛擬Python環境,不會影響同一台機器上的其他Python程序。在使用virtualenv的安裝過程中,需要安裝TensorFlow以及TensorFlow所需的所有軟件包。 要開始使用TensorFlow,您隻需要激活虛擬環境。總而言之,virtualenv為安裝和運行TensorFlow提供了一個安全可靠的機製。

本地pip直接在您的係統上安裝TensorFlow,而不需要經過任何容器係統。我們建議係統管理員使用本地點安裝,目的是使TensorFlow適用於多用戶係統上的所有人。由於本地pip安裝不在單獨的容器中隔離,因此pip安裝可能會幹擾係統上的其他Python-based安裝。但是,如果您了解pip和Python環境,則本機pip安裝通常隻需要一個命令。

Docker將TensorFlow安裝與機器上已經安裝的軟件包完全隔離。 Docker容器可以包含TensorFlow及其所有依賴項。請注意,Docker的映像文件(Image)可能相當大(數百MB)。如果您想將TensorFlow集成到已經使用Docker的較大應用程序體係結構中,則可以選擇Docker安裝。

在Anaconda中,您可以使用conda來創建一個虛擬環境。但是,在Anaconda內,我們建議您使用pip install命令來安裝TensorFlow,而不是conda install命令。

注意:conda包是社區支持的,沒有官方正式支持。也就是說,TensorFlow團隊既不測試也不維護conda包。使用該包需要自行承擔風險。

使用virtualenv進行安裝

使用virtualenv安裝TensFlow的步驟如下:

  1. 使用以下命令之一安裝pip和virtualenv:

    $ sudo apt-get install python-pip python-dev python-virtualenv # for Python 2.7
     $ sudo apt-get install python3-pip python3-dev python-virtualenv # for Python 3.n
  2. 使用以下命令之一創建一個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,但您可以選擇任何其他目錄。

  3. 使用以下命令之一激活virtualenv環境:

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

    上述source命令會將您的命令行提示更改為以下內容:

    (tensorflow)$ 
  4. 確保安裝了pip≥8.1:

    (tensorflow)$ easy_install -U pip
  5. 使用以下命令之一在激活的virtualenv環境中安裝TensorFlow:

    (tensorflow)$ pip install --upgrade tensorflow      # for Python 2.7
     (tensorflow)$ pip3 install --upgrade tensorflow     # for Python 3.n
     (tensorflow)$ pip install --upgrade tensorflow-gpu  # for Python 2.7 and GPU
     (tensorflow)$ pip3 install --upgrade tensorflow-gpu # for Python 3.n and GPU

    如果上述命令成功,請跳過步驟6.如果上述命令失敗,請執行步驟6。

  6. (可選)如果步驟5失敗(通常是因為您調用低於8.1的pip版本),請通過執行以下命令在激活的virtualenv環境中安裝TensorFlow:

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

    其中tfBinaryURL標識TensorFlow Python包的URL。tfBinaryURL的值取決於操作係統,Python版本和GPU支持。在這裏為您的係統找到tfBinaryURL的合適取值。例如,如果要安裝TensorFlow for Linux,支持Python 3.4和CPU-only,請在活動的virtualenv環境中執行以下命令安裝TensorFlow:

    (tensorflow)$ pip3 install --upgrade \
     https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.3.0-cp34-cp34m-linux_x86_64.whl

如果遇到安裝問題,請參閱常見安裝問題

下一步

安裝TensorFlow後,需要驗證安裝

請注意,每次使用TensorFlow時,必須激活virtualenv環境。如果virtualenv環境當前未處於活動狀態,請調用以下命令之一:

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

當virtualenv環境處於活動狀態時,可以從此shell運行TensorFlow程序。如果您的命令行提示變為以下內容,表示您的Tensorflow環境處於激活狀態:

(tensorflow)$ 

使用TensorFlow結束後,可以通過調用deactivate功能停用環境,如下:

(tensorflow)$ deactivate 

提示將恢複為默認提示符(由PS1環境變量)。

卸載TensorFlow

要卸載TensorFlow,隻需刪除您創建的文件目錄樹。例如:

$ rm -r targetDirectory 

用本地pip安裝

您可以通過pip安裝TensorFlow,這種安裝方式更簡潔。

注意:這個文檔setup.py的REQUIRED_PACKAGES部分列出了pip安裝Tensorflow需要安裝或升級的軟件包。

先決條件:Python和Pip

在Ubuntu上自帶了Python,可以通過python -V命令查看Python版本:

  • Python 2.7
  • Python 3.3+

通常Ubuntu上也會有pip或pip3包管理器。可以使用pip -Vpip3 -V命令檢查pip或pip3的安裝。我們強烈建議使用8.1或更高版本的pip或pip3。如果未安裝版本8.1或更高版本,請執行以下命令,該命令將安裝或升級到最新的pip版本:

$ sudo apt-get install python-pip python-dev   # for Python 2.7
$ sudo apt-get install python3-pip python3-dev # for Python 3.n

安裝TensorFlow

假如在Linux主機上已經安裝了必需的軟件,請執行以下步驟:

  1. 通過以下命令之一安裝Tensorflow:

    $ pip install tensorflow      # Python 2.7; CPU support (no GPU support)
     $ pip3 install tensorflow     # Python 3.n; CPU support (no GPU support)
     $ pip install tensorflow-gpu  # Python 2.7;  GPU support
     $ pip3 install tensorflow-gpu # Python 3.n; GPU support 

    如果上述命令運行完畢,就可以驗證您的安裝

  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版本以及是否要有GPU支持。例如,要安裝TensorFlow for Linux,支持Python 3.4和CPU-only,請執行以下命令:

     $ sudo pip3 install --upgrade \
     https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.3.0-cp34-cp34m-linux_x86_64.whl
     

    如果此步驟失敗,請參閱常見安裝問題

下一步

安裝TensorFlow後,驗證您的安裝

卸載TensorFlow

要卸載TensorFlow,請執行以下命令之一:

$ sudo pip uninstall tensorflow  # for Python 2.7
$ sudo pip3 uninstall tensorflow # for Python 3.n

使用Docker進行安裝

通過Docker安裝TensorFlow需要以下步驟:

  1. 根據Docker文檔,在您的機器上安裝Docker。
  2. (可選)創建一個名為docker的Linux組,根據Docker文檔,允許啟動沒有sudo的容器。 (如果您不執行此步驟,則每次調用Docker時都必須使用sudo。)
  3. 要安裝支持GPU的TensorFlow版本,您必須先安裝nvidia-docker,它存儲在github中。
  4. 啟動包含任意一個TensorFlow二進製圖像的Docker容器。

本節的其餘部分將介紹如何啟動Docker容器。

CPU-only

要啟動支持CPU-only的Docker容器(即,不支持GPU),請輸入以下格式的命令:

$ docker run -it -p hostPort:containerPort TensorFlowCPUImage

其中:

  • -p hostPort:containerPort是可選的。如果您計劃從shell運行TensorFlow程序,請忽略此選項。如果您打算運行TensorFlow程序作為Jupyter Notebooks,請同時設置HOSTPORTcontainerPort8888。如果您想在容器內運行TensorBoard,請添加第二個-p標誌,將HOSTPORTcontainerPort都設置為6006。
  • TensorFlowCPUImage是必須的。它標識了Docker容器,可指定以下值之一:

    • gcr.io/tensorflow/tensorflow,這是TensorFlow CPU二進製映像。
    • gcr.io/tensorflow/tensorflow:latest-devel,這是最新的TensorFlow CPU二進製映像和源代碼。
    • gcr.io/tensorflow/tensorflow:version,它是TensorFlow CPU二進製映像的指定版本(例如,1.1.0rc1)。
    • gcr.io/tensorflow/tensorflow:version-devel,它是TensorFlow GPU二進製圖像加上源代碼的指定版本(例如,1.1.0rc1)。

    是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 -p 8888:8888 gcr.io/tensorflow/tensorflow

在首次啟動的時候,Docker會下載TensorFlow二進製圖像。

GPU支持

在安裝具有GPU支持的TensorFlow之前,請確保您的係統滿足所有要求NVIDIA軟件要求。要啟動支持NVidia GPU的Docker容器,請輸入以下命令:

$ nvidia-docker run -it -p hostPort:containerPort TensorFlowGPUImage

其中:

  • -p hostPort:containerPort是可選的。如果您計劃從shell運行TensorFlow程序,請忽略此選項。如果您打算運行TensorFlow程序作為Jupyter Notebooks,請將HOSTPORTcontainerPort都設置為8888
  • TensorFlowGPUImage用於指定Docker容器,必須指定以下值之一:
    • gcr.io/tensorflow/tensorflow:latest-gpu,這是最新的TensorFlow GPU二進製映像。
    • gcr.io/tensorflow/tensorflow:latest-devel-gpu,,這是最新的TensorFlow GPU二進製映像加源代碼。
    • gcr.io/tensorflow/tensorflow:version-gpu,它是TensorFlow GPU二進製映像的指定版本(例如0.12.1)。
    • gcr.io/tensorflow/tensorflow:version-devel-gpu,它是TensorFlow GPU二進製映像加上源代碼的指定版本(例如0.12.1)。

我們建議安裝其中latest版本之一。例如,以下命令在Docker容器中啟動最新的TensorFlow GPU二進製映像,您可以在其中以Shell方式運行TensorFlow程序:

$ nvidia-docker run -it gcr.io/tensorflow/tensorflow:latest-gpu bash

以下命令也在Docker容器中啟動最新的TensorFlow GPU二進製映像。在這個Docker容器中,您可以在Jupyter Notebooks中運行TensorFlow程序:

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

以下命令安裝較舊的TensorFlow版本(0.12.1):

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

首次啟動時,Docker會下載TensorFlow二進製圖像。有關詳細信息,請參閱TensorFlow Docker Readme

下一步

接下來需要驗證您的安裝

使用Anaconda安裝

在Anaconda環境中安裝TensorFlow的步驟:

  1. 按照Anaconda下載網站的說明,下載並安裝Anaconda。

  2. 創建“conda”的環境tensorflow,通過以下命令來運行Python版本:

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

    $ source activate tensorflow
     (tensorflow)$  # Your prompt should change 
  4. 執行如下命令,在您的公共環境中安裝TensorFlow:

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

    其中tfBinaryURLTensorFlow Python包的URL。例如,以下命令安裝CPU-only版本的TensorFlow for Python 3.4:

     (tensorflow)$ pip install --ignore-installed --upgrade \
     https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.3.0-cp34-cp34m-linux_x86_64.whl

驗證您的安裝

要驗證您的TensorFlow安裝,請執行以下操作:

  1. 確保運行TensorFlow程序的環境已經ready。
  2. 運行一個簡短的TensorFlow程序。

準備環境

如果您使用native pip,virtualenv或Anaconda安裝,請執行以下操作:

  1. 啟動一個終端
  2. 如果您安裝了virtualenv或Anaconda,請激活您的容器。
  3. 如果您安裝了TensorFlow源代碼,請切換到任何目錄(除了TensorFlow源代碼目錄)。

如果您通過Docker安裝,請啟動Docker容器,從中可以運行bash。例如:

$ 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入門

如果係統輸出錯誤消息而不是問候語,請參閱常見的安裝問題

常見的安裝問題

我們依靠StackOverflow來記錄TensorFlow安裝問題及其補救措施。下表列出了一些常見安裝問題的Stack Overflow答案的鏈接。如果您遇到下表中未列出的錯誤消息或其他安裝問題,請在StackOverflow進行搜索。如果在Stack Overflow沒有找打答案,請在Stack Overflow上詢問一個有關此問題的新問題並指定tensorflow標簽。

Stack Overflow鏈接 錯誤信息
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
36371137這裏
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.
35252888
Error importing tensorflow. Unless you are using bazel, you should
  not try to import tensorflow from its source directory; please exit the
  tensorflow source tree, and relaunch your python interpreter from
  there.
33623453
IOError: [Errno 2] No such file or directory:
  '/tmp/pip-o6Tpui-build/setup.py'
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'
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' 
36933958
  ...
  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/System/Library/Frameworks/Python.framework/
   Versions/2.7/Extras/lib/python/_markerlib'

TensorFlow Python包的URL

一些安裝機製需要TensorFlow Python包的URL。您指定的值取決於三個因素:

  • 操作係統
  • Python版本
  • 僅CPU與GPU支持

本節介紹Linux環境下安裝Tensorflow的相關取值。

Python 2.7

僅CPU:

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

GPU支持:

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.3.0-cp27-none-linux_x86_64.whl

請注意,GPU支持需要文檔NVIDIA要求運行TensorFlow支持GPU中描述的NVIDIA硬件和軟件。

Python 3.4

僅CPU:

https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.3.0-cp34-cp34m-linux_x86_64.whl

GPU支持:

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.3.0-cp34-cp34m-linux_x86_64.whl

請注意,GPU支持需要文檔NVIDIA要求運行TensorFlow支持GPU中描述的NVIDIA硬件和軟件。

Python 3.5

僅CPU:

https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.3.0-cp35-cp35m-linux_x86_64.whl

GPU支持:

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.3.0-cp35-cp35m-linux_x86_64.whl

請注意,GPU支持需要NVIDIA中描述的硬件和軟件NVIDIA要求運行TensorFlow支持GPU

Python 3.6

僅CPU:

https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.3.0-cp36-cp36m-linux_x86_64.whl

GPU支持:

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.3.0-cp36-cp36m-linux_x86_64.whl

請注意,GPU支持需要文檔NVIDIA要求運行TensorFlow支持GPU中描述的NVIDIA硬件和軟件。

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包,請調用以下命令之一:

  $ pip install --upgrade \
  https://storage.googleapis.com/tensorflow/linux/cpu/protobuf-3.1.0-cp27-none-linux_x86_64.whl

  $ pip3 install --upgrade \
  https://storage.googleapis.com/tensorflow/linux/cpu/protobuf-3.1.0-cp35-none-linux_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/3615.html,未經允許,請勿轉載。