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


在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/article/3615.html,未经允许,请勿转载。