tensorflow 是由谷歌构建的用于训练神经网络的开源机器学习软件。tensorflow 的神经网络以有状态数据流图的形式表示。图中的每个节点表示神经网络在多维数组上执行的操作。这些多维数组通常称为“张量(tensors)”,因此命名为“tensorflow”。
tensorflow 是一个深度学习软件系统。根据谷歌机器学习人工智能系统中的排名(rankbrain),tensorflow 可以很好地用于信息检索。tensorflow 可以执行图像识别,如谷歌的inception,以及人类语言的音频识别。它也有助于解决其他不特定于机器学习的问题,如偏微分方程。
tensorflow 架构允许部署在桌面、服务器或移动设备中的多个 cpu 或 gpu上。还有与cuda集成的扩展,cuda 是 nvidia 的一个并行计算平台。它可让部署在 gpu 上的用户直接访问虚拟指令集和 gpu 的其他元素,这对于并行计算任务是必需的。
在本教程中,您将安装“只支持 cpu”的 tensorflow 版本。这对于那些想要安装和使用 tensorflow 的人来说是非常理想的,不需要依赖 nvidia 显卡或者不需要运行关键性能的应用程序。
您可以通过以下几种方式安装 tensorflow。每种方法都有不同的用例和开发环境:
python 和 virtualenv:在此方法中,您将安装 tensorflow 并在 python 虚拟环境中使用 tensorflow 所需的所有包。这将把您的 tensorflow 环境与同一台机器上的其他 python 程序隔离开来。
native pip:在此方法中,您将在系统全局中安装 tensorflow。这是推荐给多用户系统上使用 tensorflow 的那些人。这种安装方法不会在包环境中隔离 tensorflow,并且可能会干扰其他 python 安装或库。
docker:docker 是一个容器运行时环境,它将内容完全隔离在系统上预先存在的包中。在这个方法中,您使用包含 tensorflow 及其所有依赖项的 docker 容器。这种方法非常适合将 tensorflow 合并到已经使用 docker 的更大的应用程序体系结构中。但是这样做的话 docker 镜像将相当大。
在本教程中,您将在 python 虚拟环境 virtualenv 中安装 tensorflow。该方法将 tensorflow 安装隔离,并快速启动和运行。一旦完成安装,您将通过运行一个简单的 tensorflow 程序来验证安装是否成功,然后使用 tensorflow 来执行图像识别。
安装准备
在开始本教程之前,您需要准备以下内容:
一个至少 1gb 内存的 ubuntu 16.04 服务器,根据ubuntu 16.04 初始化服务器设置指南进行设置,包括 sudo 非 root 用户和防火墙。您需要至少 1gb 内存的系统才能成功地完成本教程的最后一个示例。
安装 python 3.3 或更高版本以及虚拟环境 virtualenv。按照如何在 ubuntu 16.04 上安装 python 3教程以配置 python 和 virtualenv。
安装 git,您可以通过以下方式来实现,如何在 ubuntu 16.04 上安装 git。您将使用它来下载一个示例存储库。
步骤 1 — 安装 tensorflow
在此步骤中,我们将创建一个虚拟环境并安装 tensorflow。
首先,创建一个名为tf-demo的项目目录:
$mkdir~/tf-demo
导航到新创建的tf-demo目录下:
$cd~/tf-demo
然后创建一个名为tensorflow-dev的新虚拟环境。运行以下命令创建环境:
$python3-mvenvtensorflow-dev
这将创建一个新的tensorflow-dev目录,该目录将包含环境被激活时需要安装的所有包。它还包括pip和一个独立版本的 python。
现在激活你的虚拟环境:
$sourcetensorflow-dev/bin/activate
一旦激活,你将会在你的终端看到如下内容:
(tensorflow-dev)username@hostname:~/tf-demo$
现在可以在虚拟环境中安装 tensorflow。
运行以下命令安装和升级到pypi中最新版本的 tensorflow:
(tensorflow-dev)$pip3install--upgradetensorflow
tensorflow 将开始安装:
outputcollectingtensorflowdownloadingtensorflow-1.4.0-cp36-cp36m-macosx_10_11_x86_64.whl(39.3mb)100%|████████████████████████████████|39.3mb35kb/s...successfullyinstalledbleach-1.5.0enum34-1.1.6html5lib-0.9999999markdown-2.6.9numpy-1.13.3protobuf-3.5.0.post1setuptools-38.2.3six-1.11.0tensorflow-1.4.0tensorflow-tensorboard-0.4.0rc3werkzeug-0.12.2wheel-0.30.0
如果你希望随时关闭虚拟环境,使用下面的命令:
$deactivate
如果要重新激活环境,导航至项目目录并运行sourcetensorflow-dev/bin/activate.
现在,您已经安装了 tensorflow,让我们确认一下 tensorflow 是否安装成功。
步骤 2 — 验证安装是否成功
为了验证 tensorflow 是否安装成功,我们将在 tensorflow 中使用非 root 用户权限运行一个的简单程序。我们将使用惯用的初学者示例hello, world!作为一种验证形式来验证。我们将使用 python 的交互式控制台(python's interactive console)来创建这个程序,而不是创建一个 python 文件。
要编写程序,请启动 python 解释器:
(tensorflow-dev)$python
您将会在终端看到如下的提示
>>>
这是 python 解释器的提示符,这表明它已经准备好让您开始输入一些 python 语句。
首先,输入这一行代码来导入 tensorflow 包,并将其作为本地变量tf。输入代码后按回车键:
>>>importtensorflowastf
接下来,添加这行代码来设置信息hello, world!:
>>>hello=tf.constant(hello,world!)
然后创建一个新的 tensorflow 会话并将其分配给变量sess:
>>>sess=tf.session()
注意:根据您的环境,您可能会看到如下输出:
output2017-06-1816:22:45.956946:wtensorflow/core/platform/cpu_feature_guard.cc:45]thetensorflowlibrarywasn'tcompiledtousesse4.1instructions,buttheseareavailableonyourmachineandcouldspeedupcpucomputations.2017-06-1816:22:45.957158:wtensorflow/core/platform/cpu_feature_guard.cc:45]thetensorflowlibrarywasn'tcompiledtousesse4.2instructions,buttheseareavailableonyourmachineandcouldspeedupcpucomputations.2017-06-1816:22:45.957282:wtensorflow/core/platform/cpu_feature_guard.cc:45]thetensorflowlibrarywasn'tcompiledtouseavxinstructions,buttheseareavailableonyourmachineandcouldspeedupcpucomputations.2017-06-1816:22:45.957404:wtensorflow/core/platform/cpu_feature_guard.cc:45]thetensorflowlibrarywasn'tcompiledtouseavx2instructions,buttheseareavailableonyourmachineandcouldspeedupcpucomputations.2017-06-1816:22:45.957527:wtensorflow/core/platform/cpu_feature_guard.cc:45]thetensorflowlibrarywasn'tcompiledtousefmainstructions,buttheseareavailableonyourmachineandcouldspeedupcpucomputations.
这告诉你,你有一个指令集(instruction set),它可以继续优化,以获得更好的 tensorflow 性能。如果你看到这个,你可以放心地忽略它并继续下面的步骤。
最后,输入这一行代码,打印出在之前的代码行中构建的hellotensorflow 会话的结果:
>>>print(sess.run(hello))
您将在控制台中看到如下输出:
outputhello,world!
这表明一切都正常,您可以开始使用 tensorflow 来做一些有趣的事情。
通过按下ctrl+d退出 python 交互式控制台。
现在让我们使用 tensorflow 的图像识别 api 来熟悉 tensorflow 吧。
步骤3 — 使用 tensorflow 进行图像识别
现在已经安装了 tensorflow,通过运行一个简单的程序来验证一下,让我们看看 tensorflow 的图像识别功能。
为了给图像分类,你需要训练一个模型。然后您需要编写一些代码来使用该模型。要了解更多有关这些概念的知识,您可以看一看机器学习的介绍 (an introduction to machine learning)。
tensorflow 提供了模型和示例的存储库,包括代码和用于对图像进行分类的训练模型。
使用 git 将 tensorflow 模型仓库从 github 克隆到您的项目目录中:
(tensorflow-dev)$gitclonehttps://github.com/tensorflow/models.git
当 git 将存储库检出新文件夹models时,您将看到以下输出:
outputcloninginto'models'...remote:countingobjects:8785,done.remote:total8785(delta0),reused0(delta0),pack-reused8785receivingobjects:100%(8785/8785),203.16mib|24.16mib/s,done.resolvingdeltas:100%(4942/4942),done.checkingconnectivity...done.
切换到models/tutorials/image/imagenet目录:
(tensorflow-dev)$cdmodels/tutorials/image/imagenet
此目录包含classify_image.py文件,它使用 tensorflow 来识别图像。这个程序在第一次运行时会从tensorflow.org下载一个经过训练的模型。下载该模型需要您的磁盘有 200mb 的可用空间。
在本例中,我们将对预处理好的熊猫图像进行分类。执行这条命令以运行图像分类器程序:
(tensorflow-dev)$pythonclassify_image.py
您将看到以下输出:
outputgiantpanda,panda,pandabear,coonbear,ailuropodamelanoleuca(score=0.89107)indri,indris,indriindri,indribrevicaudatus(score=0.00779)lesserpanda,redpanda,panda,bearcat,catbear,ailurusfulgens(score=0.00296)custardapple(score=0.00147)earthstar(score=0.00117)
您已经使用了 tensorflow 的图像识别功能对您的第一个图像进行了分类。
如果您想要使用另一个图像,可以通过将-- image_file参数添加到python3 classify_image.py中来实现。对于这个参数,您将需要传入图像文件的绝对路径。
最后
您已经在 python 虚拟环境中安装了 tensorflow,并通过运行几个示例验证了 tensorflow 的运行情况。现在您拥有了一些工具,它们可以让您探索其他项目,包括卷积神经网络和word embeddings。
tensorflow 的开发者指南是个非常好的资源和手册。您还可以探索kaggle,这是一个检验机器学习概念实际应用的竞争平台,您与其他机器学习、数据科学和统计爱好者进行竞赛。他们有一个优秀的维基主页,你可以看到和分享一些解决方案,其中一些是在统计和机器学习技术的前沿思想。
小米RedmiNote7评测 很多方面远远超过了千元机的配置相当的优秀
ADC0809引脚图与接口电路的详细资料说明
理想汽车首次在国内造车新势力中率先盈利
相位噪声的两种定义与测试方法简述
黄梅天,衣服晾不干怎么办?
如何在Ubuntu16.04上安装并使用 ensorFlow
土壤水分温度测定仪保障了农业的正常生产
双C口充电头协议芯片——英集芯IP2738,支持PD3.1快充
基于区块链技术的宠物游戏加密兔介绍
人工智能最新资讯集合
最酷惠普可穿戴式VR背包电脑
电气系统的PCB设计:组件放置策略和功能
TDengine+OpenVINO+AIxBoard助力时序数据分类
解析车载半导体供给不足的真正原因
华虹半导体第三代 90nm eFlash工艺平台实现量产!
制造业升级路径:机器人到工业互联网
SIA:2月全球半导体销售额年降7.3%
第十七讲 译码器
单节锂电池保护解决方案(3)
使用两层商用解决方案的军事应用硬件全盘加密技术