在Ubuntu 16.04上,如何安装和使用TensorFlow

・11 分钟阅读

介绍

Tensorflow是谷歌为训练神经网络而构建的开源机器学习软件,TensorFlow网络的神经网络表示有状态数据流图 ,图中的每个节点代表了神经网络在多维数组上执行的操作,这些多维数组通常称为"张量",因此叫TensorFlow 。

通过以下几种方式安装TensorFlow ,每个方法都有不同的用例和开发环境:

python和virtualenv : 采用这种方法,你将安装TensorFlow以及在python虚拟环境中使用TensorFlow所需的所有包,这将TensorFlow环境与同一机器上的其他python程序隔离开来
本机pip :在此方法中,在系统上安装TensorFlow ,对于希望让TensorFlow在多用户系统上使用的人来说,推荐这样做,这种安装方法不隔离包含的环境中的TensorFlow,干扰其他python安装或库
Docker :Docker是一个容器运行时环境,完全隔离了系统中存在的软件包中的内容,在这个方法中,你使用一个包含TensorFlow及它所有依赖项的Docker容器,这种方法适用于将TensorFlow集成到已经使用Docker的大型应用程序架构中,但是,Docker镜像的大小将非常大。

在本教程中,你将使用virtualenv在Python虚拟环境中安装TensorFlow。完成安装后,你将通过运行简短的TensorFlow程序来验证安装,然后使用TensorFlow进行图像识别。

前提条件

在开始本教程之前,你需要执行以下操作:

按照Ubuntu 16.04初始服务器设置指南设置至少1GB内存的Ubuntu 16.04服务器,包括sudo非根用户和防火墙,你将需要至少1GB内存才能成功执行本教程中最后一个例子。

已安装Python 3.3或更高版本和virtualenv ,按照如何在Ubuntu 16 04上安装Python 3配置python和virtualenv

第1步-安装TensorFlow

在这个步骤中,我们创建一个虚拟环境,并且安装TensorFlow 。

首先,创建一个名为tf-demo的项目目录:


mkdir ~/tf-demo

导航到新创建的tf-demo目录:


cd ~/tf-demo

然后创建一个叫tensorflow-dev的新虚拟环境,运行以下命令创建环境:


python3 -m venv tensorflow-dev

这将创建一个新的tensorflow-dev目录,其中包含在激活此环境时安装的所有包,它还包括pip和一个独立的python版本。

现在激活你的虚拟环境:


source tensorflow-dev/bin/activate

激活后,你将在终端中看到类似于以下内容的内容:


(tensorflow-dev)username@hostname:~/tf-demo $

现在你可以在虚拟环境中安装TensorFlow 。

运行以下命令以安装和升级到最新版本的TensorFlow PyPI


pip3 install --upgrade tensorflow

TensorFlow将安装:


OutputCollecting tensorflow
 Downloading tensorflow-1.4.0-cp36-cp36m-macosx_10_11_x86_64.whl (39.3MB)
 100% |████████████████████████████████| 39.3MB 35kB/s

...

Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30.0

如果你希望随时停用虚拟环境,该命令为:


deactivate

要稍后重新激活环境,请导航到项目目录,并且运行,source tensorflow-dev/bin/activate

现在你已经安装了TensorFlow。

第2步验证安装

为了验证TensorFlow的安装,我们在TensorFlow中运行一个简单的程序,作为非root用户,使用"Hello ,world"的初级示例作为验证的一种形式,

要编写该程序,启动你的python解释器:


python

你将看到以下提示出现在你的终端中

 
>>>

 

这是python解释器的提示,它指示你可以开始输入一些python语句。

首先,导入TensorFlow包,并使它作为本地变量tf可用,在代码行键入后按ENTER


import tensorflow as tf

接下来,添加这一行代码来设置消息


hello = tf.constant("Hello, world!")

然后创建一个新的TensorFlow会话并将它分配给变量sess


sess = tf.Session()

注意:根据你的环境,你看到以下输出:


Output2017-06-18 16:22:45.956946: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957158: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957282: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957404: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957527: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.


print(sess.run(hello))

你将在控制台中看到此输出:


OutputHello, world!

这表明一切都正常,并且你可以开始使用TensorFlow做一些有趣的事情。

CTRL+D退出python交互式控制台。

现在,让我们使用TensorFlow的图像识别API来更加熟悉TensorFlow。

步骤3-使用TensorFlow进行图像识别

现在TensorFlow已经安装,并且通过运行一个简单的程序来验证它,看一下TensorFlow识别功能的图像。

为了对图像进行分类,你需要训练一个模型,然后,你需要编写一些代码来使用模型,

TensorFlow提供了模型和例子库,包括代码和用于分类图像的训练模型。

使用Git将TensorFlow模型存储库从GitHub克隆到项目目录中:


git clone https://github.com/tensorflow/models.git

当Git签出存储库到名为models的新文件夹时,你将看到以下输出:


OutputCloning into 'models'...
remote: Counting objects: 8785, done.
remote: Total 8785 (delta 0), reused 0 (delta 0), pack-reused 8785
Receiving objects: 100% (8785/8785), 203.16 MiB | 24.16 MiB/s, done.
Resolving deltas: 100% (4942/4942), done.
Checking connectivity... done.

切换到models/tutorials/image/imagenet目录:


cd models/tutorials/image/imagenet

此目录包含classify_image.py文件,该文件使用TensorFlow来识别图像,这个程序在第一次运行时从tensorflow.org下载一个经过训练的模型,下载此模型需要磁盘上有200MB的可用空间。

执行此命令以运行图像分类器程序:


python classify_image.py

你将看到类似于以下内容的输出:


Outputgiant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)
custard apple (score = 0.00147)
earthstar (score = 0.00117)

你已经使用TensorFlow的图像识别功能对第一个图像进行。

如果你想使用其他图像,通过将-- image_file参数添加到python3 classify_image.py命令来实现,

结束语

你已经在python虚拟环境中安装了TensorFlow,并通过运行几个例子验证了TensorFlow可以工作。

Yangchunyan110 profile image