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

TensorFlow是Google开发的用于训练神经网络的开源机器学习软件。在本教程中,您将在Python虚拟环境中安装TensorFlow。然后,您将运行一个简短的TensorFlow程序来验证您的安装,然后使用TensorFlow执行图像识别。

介绍

TensorFlow是Google开发的用于训练神经网络的开源机器学习软件。 TensorFlow的神经网络以状态数据流图的形式表示。 图中的每个节点表示神经网络在多维阵列上执行的操作。 这些多维阵列通常被称为“张量”,因此称为TensorFlow。

TensorFlow是一个深度学习软件系统。 谷歌在他们的机器学习人工智能系统RankBrain中如何进行搜索排名,TensorFlow可以很好地用于信息检索。 TensorFlow可以执行图像识别,如Google的Inception所示,以及人类语言的音频识别。 它也可以用来解决其他非机器学习问题,如偏微分方程

TensorFlow架构允许部署在桌面,服务器或移动设备中的多个CPU或GPU上。 还有与CUDA (Nvidia的并行计算平台)集成的扩展。 这使正在GPU上部署的用户可以直接访问并行计算任务所需的虚拟指令集和GPU的其他元素。

在本教程中,您将安装TensorFlow的“仅支持CPU”版本。 此安装非常适合希望安装和使用TensorFlow,但没有Nvidia显卡或不需要运行性能关键型应用程序的用户。

你可以用几种方法安装TensorFlow。 每种方法都有不同的用例和开发环境:

  • Python和Virtualenv :在这种方法中,您将安装TensorFlow以及在Python虚拟环境中使用TensorFlow所需的所有软件包。 这将您的TensorFlow环境与其他Python程序隔离在同一台机器上。
  • 本地点:在这种方法中,您可以在您的系统上全局安装TensorFlow。 对于想要在多用户系统上向所有人提供TensorFlow的用户,建议使用此功能。 这种安装方法不能在封闭的环境中隔离TensorFlow,并且可能会干扰其他Python安装或库。
  • Docker :Docker是一个容器运行时环境,它完全隔离了系统中已有包的内容。 在这个方法中,你使用一个包含TensorFlow及其所有依赖项的Docker容器。 此方法非常适合将TensorFlow并入已经使用Docker的更大应用程序体系结构中。 但是,Docker镜像的大小将会相当大。

在本教程中,您将使用virtualenv将TensorFlow安装在Python虚拟环境中。 这种方法隔离了TensorFlow安装并快速启动并运行。 完成安装后,您将通过运行一个简短的TensorFlow程序来验证您的安装,然后使用TensorFlow执行图像识别。

先决条件

在开始本教程之前,您需要以下内容:

第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。

运行以下命令安装并升级到PyPi中可用的最新版本的TensorFlow:

pip3 install --upgrade tensorflow

TensorFlow将安装:

Collecting 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,让我们确保TensorFlow安装工作。

第2步 - 验证安装

为了验证TensorFlow的安装,我们将以非root用户的身份在TensorFlow中运行一个简单的程序。 我们将使用“Hello,world”的标准初学者例子。 作为验证的一种形式。 我们不是创建一个Python文件,而是使用Python的交互式控制台创建这个程序。

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

python

您会看到在终端中出现以下提示

>>>

这是Python解释器的提示,它表明它已经准备好开始输入一些Python语句。

首先,输入这一行来导入TensorFlow软件包,并将其作为局部变量tf 输入代码后按ENTER

import tensorflow as tf

接下来,添加下面这行代码来设置消息“Hello,world!”:

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

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

sess = tf.Session()

注意 :根据您的环境,您可能会看到以下输出:

2017-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.

这告诉你,你有一个指令集 ,有可能通过TensorFlow进行优化以获得更好的性能。 如果你看到这个,你可以放心地忽略它并继续。

最后,输入以下代码行来打印出您在之前的代码行中构建的hello TensorFlow会话的结果:

print(sess.run(hello))

你会在控制台中看到这个输出:

Hello, world!

这表明一切正常,您可以开始使用TensorFlow做更有趣的事情。

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

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

第3步 - 使用张量流进行图像识别

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

为了分类图像,你需要训练一个模型。 那么你需要编写一些代码来使用模型。 要了解更多关于这些概念的信息,可以查看“ 机器学习入门”

TensorFlow提供了一个模型和示例存储库 ,包括代码和训练有素的图像分类模型。

使用Git将GitHub中的TensorFlow模型库克隆到您的项目目录中:

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

你会看到下面的输出,因为Git检出了一个名为models的新文件夹:

Cloning 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

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

在这个例子中,我们将分类预先提供的熊猫图像 执行此命令来运行图像分类器程序:

python classify_image.py

你会看到类似这样的输出:

giant 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的工作原理。 您现在拥有的工具可以让您探索更多的主题,包括卷积神经网络文字嵌入

TensorFlow的程序员指南是TensorFlow开发的一个很好的资源和参考。 您还可以探索Kaggle ,这是一个机器学习概念的实际应用的竞争环境,可以让您与其他机器学习,数据科学和统计爱好者交流。 他们有一个优秀的wiki ,你可以看到和分享解决方案,其中一些在统计和机器学习技术的尖端。


分享按钮