TensorFlow机器学习

978-7-115-53125-4
作者: [越]全华(Quan Hua)[巴基]沙姆斯·乌尔·阿齐姆(Shams Ul Azeem)[美] 西福·艾哈迈德(Saif Ahmed)
译者: 李晗
编辑: 武晓燕

图书目录:

详情

TensorFlow是Google所主导的机器学习框架,也是机器学习领域研究和应用的热门对象。 本书主要介绍如何通过TensorFlow来构建真实世界的机器学习系统,旨在让读者学以致用,能尽快地上手项目。本书的特色是通过实例来向读者介绍TensorFlow的经典知识。本书共有12章,包含手写识别器、猫狗分类器、翻译器、文本含义查找、金融中的机器学习、医疗应用等多个实例,完整地向读者展示了实现机器学习应用的全流程。 本书适合想要学习、了解TensorFlow和机器学习的读者阅读。如果读者知道基本的机器学习概念,并对Python语言有一定的了解,那么能够更加轻松地阅读本书。

图书摘要

版权信息

书名:TensorFlow机器学习

ISBN:978-7-115-53125-4

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


著    [越]全华(Quan Hua) 

     [巴]沙姆斯•乌尔•阿齐姆(Shams Ul Azeem) 

     [美] 西福•艾哈迈德(Saif Ahmed)

译    李 晗

责任编辑 武晓燕

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


Copyright ©2020 Packt Publishing. First published in the English language under the title Machine Learning with TensorFlow 1.x.

All rights reserved.

本书由英国Packt Publishing 公司授权人民邮电出版社出版。未经出版者书面许可,对本书的任何部分不得以任何方式或任何手段复制和传播。

版权所有,侵权必究。




TensorFlow是Google所主导的机器学习框架,也是机器学习领域研究和应用的热门对象。

本书主要介绍如何通过TensorFlow来构建真实世界的机器学习系统,旨在让读者学以致用,能尽快地上手项目。本书的特色是通过实例来向读者介绍TensorFlow的经典知识。本书共有12章,包含手写识别器、猫狗分类器、翻译器、文本含义查找、金融中的机器学习、医疗应用等多个实例,完整地向读者展示了实现机器学习应用的全流程。

本书适合想要学习、了解TensorFlow和机器学习的读者阅读。如果读者知道基本的机器学习概念,并对Python语言有一定的了解,那么能够更加轻松地阅读本书。


全华是BodiData(一个身体测量数据平台)的一位计算机视觉和机器学习工程师,专注于为某种手持技术开发计算机视觉和机器学习应用。该技术能够在人体穿着衣服时获取身体虚拟化身。全华获得了越南理工大学的理学学士学位,专攻方向为计算机视觉,并在初创企业中从事计算机视觉和机器学习领域工作。

自2015年起,全华一直在为Packt撰写图书,例如计算机视觉图书OpenCV 3 Blueprints

我要感谢每一位在本书编写过程中鼓励我的人。

我想向我的合著者、编辑和审稿人表达诚挚的谢意,谢谢他们的建议和帮助。

我要感谢我的家人,特别是我的妻子金思戈(Kim Ngoc)。尽管编写本书占用了大量本该用于陪伴他们的时间,但他们仍然这么支持和鼓励我。是他们让我坚持不懈地编写本书。没有他们的支持,这本书是不可能完成的。

我还要感谢我的老师,是他们传授了我计算机视觉和机器学习领域的知识。

沙姆斯•乌尔•阿齐姆毕业于巴基斯坦国立科技大学电气工程专业。他对计算机科学领域怀有浓厚的兴趣,并以Android开发开启他的技术之旅。目前,他在其他公司从事医疗相关的项目,在机器学习特别是深度学习领域继续追求着自己的职业理想。

他还曾是巴基斯坦国立科技大学RISE实验室的成员。作为Designing of Motions for Humanoid Goalkeeper Robots的合著者,他在IEEE国际会议ROBIO中享有出版信誉。

西福•艾哈迈德是一位经验丰富的量化分析师,同时也是一位拥有15年行业经验的数据科学家。他的职业生涯始于埃森哲公司的管理咨询,最终在高盛集团和AIG投资公司中担任量化和高级管理职务。最近,他与人共同创立并经营着一家专注于将深度学习应用到医学成像自动化的创业公司。另外,他获得了康奈尔大学的计算机科学学士学位,目前正在加州大学伯克利分校攻读数据科学专业硕士学位。


纳撒•林茨是一名机器学习研究员,专注于文本分类。在开始接触机器学习时,他主要使用Theano,但在TensorFlow发布后,他就转而使用TensorFlow。TensorFlow大大减少了构建机器学习系统的时间,这得益于其直观易懂而强大的神经网络工具集。

我要感谢我的家人和教授,感谢他们给予我的一切帮助。没有他们,我将无法长久保持对软件工程和机器学习的热情。


机器学习彻底改变了现代生活。很多机器学习算法,尤其是深度学习,已经在全球范围内使用,覆盖范围从移动设备到基于云的服务。TensorFlow是领先的开源软件库之一,能帮助你为各种应用程序构建、训练和部署机器学习系统。这本实操书旨在带给你最好的TensorFlow,并帮助你构建真实世界的机器学习系统。

读完本书,你会对TensorFlow有一个深刻的理解,并能够将机器学习技术应用到你的应用程序中。

第1章,初识TensorFlow,演示如何安装TensorFlow,并介绍在Ubuntu、macOS和Windows系统上的安装步骤。

第2章,你的第一个分类器,通过实现一个手写识别器,带你享受你的第一次机器学习之旅。

第3章,TensorFlow工具箱,带你浏览TensorFlow为实现高效、便捷的工作所提供的工具箱。

第4章,猫和狗,教你如何在TensorFlow中使用卷积神经网络构建一个图像分类器。

第5章,序列到序列模型——你讲法语吗,讨论如何使用序列到序列模型创建一个英语到法语的翻译器。

第6章,探索文本含义,通过使用情感分析、实体提取、关键词提取和词关系提取来探索查找文本含义的方法。

第7章,利用机器学习赚钱,在本章,你会进入一个充满大量数据的领域:金融世界,本章教你如何使用时间序列数据来解决金融问题。

第8章,医疗应用,研究使用深度神经网络解决企业级问题(医疗诊断)的方式。

第9章,生产系统自动化,教你如何创建一个生产系统,系统范围从训练模型到服务模型。该系统还可以接收用户反馈,并能够每天自动地进行自我训练。

第10章,系统上线,带你遨游亚马逊Web服务世界,并展示如何利用亚马逊服务器上的多GPU系统。

第11章,更进一步—— 21个课题,本章介绍了21个可以使用深度学习框架TensorFlow解决的现实问题。

第12章,高级安装,讨论GPU,并关注CUDA的设置步骤及基于GPU的TensorFlow安装。

在软件方面,整本书都基于TensorFlow,你可以使用Linux、Windows或者macOS系统。

在硬件方面,你需要一台可以运行Ubuntu、macOS或Windows的台式计算机或笔记本计算机。如果你想使用深度神经网络,尤其是当你想要处理大规模数据集时,我们推荐你准备一个NVIDIA显卡。

如果你已经熟练掌握了机器学习概念、Python编程、IDE和命令行,如果你渴望创建一个足够智能和实用的机器学习系统来供现实应用程序使用,那么本书将是你的理想之选。对于那些在工作中熟练掌握编程的人,或者那些需要学习机器学习和TensorFlow来支持他们工作的科学家和工程师来说,这本书都将有所帮助。

在本书中,你会发现多种用以区分不同信息类型的文本样式。下面是这些样式的一些示例,以及对它们含义的解释。

文本中的代码、数据库表名、文件夹名称、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter的处理是:“通过使用include指令,我们可以包含其他上下文信息。”

代码块的样式如下所示。

batch_size = 128
  num_steps = 10000
  learning_rate = 0.3
  data_showing_step = 500

当我们希望将你的注意力吸引到代码块的某个特定部分时,相关的行或项会设置成粗体。

Layer 1 CONV (32, 28, 28, 4)
Layer 2 CONV (32, 14, 14, 4)
Layer 3 CONV (32, 7, 7, 4)

``` 任何命令行输入或输出都如下所示。

sudo apt-get install python-pip python-dev

新的术语和重要的词会用粗体显示。

 

该图标表示警告或重要说明。

 

 

该图标表示提示和技巧。

 


本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

本书提供如下资源:

要获得以上配套资源,请在异步社区本书页面中单击 ,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

如果您是教师,希望获得教学配套资源,请在社区本书页面中直接联系本书的责任编辑。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。

异步社区

微信服务号


近年来,随着大型公共数据集、廉价图形处理器(Graphics Processing Unit,GPU)的涌现,以及开发者专业程度的增强,机器学习领域已经取得了革命性的成就。作为机器学习的命脉,训练数据的获取和使用也已经变得轻而易举。此外,计算能力的提升也已经能够满足个人甚至小型企业的需求。对于数据科学家来说,当前的十年是激动人心的十年。

行业中使用的一些顶级平台有Caffe、Theano和Torch。虽然基础平台的开发比较活跃,并且是公开共享的,但是由于其安装困难、配置烦琐且难以作为生产解决方案,因此目前其使用者主要局限于机器学习从业者。

在2015年底和2016年,一些新的平台进入了人们的视野,包括谷歌的TensorFlow、微软的CNTK(Computational Network Toolkit)、三星的Veles等。由于某些原因,谷歌的TensorFlow成为了非常受欢迎的平台。

TensorFlow是最容易安装的平台之一,它将机器学习技能直接引入了普通爱好者和初级程序员的领域中。与此同时,其高性能特点,如多GPU支持,也使其成为了有经验的数据科学家和工业应用领域喜欢的平台。另外,TensorFlow还提供了一种重构过程和多个用户友好的工具来管理机器学习工作,例如TensorBoard。最后,该平台还拥有重要的背景支撑,以及来自世界上最大的机器学习基地——谷歌的社区支持。所有这些都是其引人注目的潜在技术优势,后续我们将会深入学习这些技术。

在本章中,我们将学习以下主题。

尽管TensorFlow发布时间不太长,但众多的社区通过努力已经成功地将其移植到现有的机器学习项目中,例如手写识别、语言翻译、动物分类、医疗图像分类,以及情感分析等。机器学习在众多行业及难题中的广泛应用总是能够激起人们的兴趣。有了TensorFlow,这些问题不仅可以得到解决,而且实现起来也很容易。事实上,在本书中我们将逐步处理并解决前面列举的各个问题。

针对多种不同的操作系统,TensorFlow提供了几种不同且便捷的安装方式和操作方式。基础安装仅仅支持CPU,而更高级的安装通过将计算推送到单个显卡甚至是多个显卡上,以调动更大的计算力。建议首先从基本的CPU安装开始,更复杂的GPU和CUDA安装将会在第12章中讨论。

即使是基础的CPU安装,TensorFlow也提供了多种选项,如下所示。

推荐使用通过Virtualenv实现的隔离Python安装,但我们的示例将采用基础的Python pip安装,以有助于你关注任务的关键点,即搭建并运行TensorFlow。

在Linux和macOS系统中,TensorFlow可在Python 2.7和Python 3.5版本下正常工作,而在Windows系统中,则只能在Python 3.5.x或Python 3.6.x版本下使用TensorFlow。在Windows系统中运行一个Linux虚拟机,如Ubuntu虚拟机,我们也可以在Python 2.7环境下使用TensorFlow。然而,在虚拟机中,无法使用支持GPU的TensorFlow。在TensorFlow 1.2版本中,TensorFlow未提供macOS系统下的GPU支持。因此,如果你想在macOS系统中使用支持GPU的TensorFlow,那么必须从源码进行编译(这超出了本章的讨论范围),否则,仍然可以使用TensorFlow 1.0或TensorFlow 1.1版本,它们提供了macOS下的GPU支持。此外,Linux和Windows用户也可以使用支持CPU和GPU的TensorFlow。

Ubuntu是运行TensorFlow最好的Linux发行版之一。强烈建议读者使用Ubuntu虚拟机,尤其是想要使用GPU时。我们将在Ubuntu终端上完成大部分的工作。下面,首先通过以下命令来安装python-pip和python-dev。

sudo apt-get install python-pip python-dev

安装成功界面如图1-1所示。

图1-1

如果发现缺失软件包,那么可以通过以下命令进行修正。

sudo apt-get update --fix-missing

然后,就可以继续安装python-pip和python -dev了。

现在,准备安装TensorFlow。我们将安装仅支持CPU的TensorFlow。

通过以下命令启动支持CPU的TensorFlow的安装。

sudo pip install tensorflow

安装成功界面如图1-2所示。

图1-2

如果你使用Python,那么你很可能已经拥有了Python包安装器pip。但是,如果尚未安装pip,那么可以使用命令easy_install pip轻松地安装它。你可能会注意到,我们实际执行的命令是sudo easy_install pip,之所以需要使用前缀sudo,是因为此安装需要管理权限。

假设你已经有了基本的软件包安装器easy_install,如果没有,那么可以从Python官网下载并安装它。安装成功将会显示图1-3所示的结果。

图1-3

接下来,安装six包。

sudo easy_install --upgrade six

安装成功界面如图1-4所示。

图1-4

TensorFlow的安装仅仅需要满足这两个先决条件,现在可以安装核心平台TensorFlow了。此处,将使用前面提到的pip包安装器,并且可以直接从谷歌网站下载安装TensorFlow。在本书编写之际,TensorFlow的最新版本是v1.3,但是你可以将其修改成想使用的最新版本。

sudo pip install tensorflow

pip安装器将自动收集所有其他所需的依赖项。在该软件安装完全结束之前,你可以看到每个下载项和安装过程信息。

安装成功界面如图1-5所示。

图1-5

至此,你就可以跳到第2章开始训练并运行你的第一个模型了。

如果macOS X用户希望完全隔离这些安装,那么可以使用虚拟机来代替,正如在1.2.3节中所描述的那样。

正如前面提到的,在Windows系统中,TensorFlow无法正常工作于Python 2.7环境。在本节中,我们将指导你在Python 3.5环境下安装TensorFlow。如果想在Python 2.7环境下使用TensorFlow,需要创建一个Linux虚拟机。

首先,需要安装64位版本的Python 3.5.x或Python 3.6.x,下载地址为Python官网。

请确保下载的是64位版本的Python,其中安装文件的名称中包含amd64,例如python-3.6.2-amd64.exe。Python 3.6.2的安装步骤如图1-6所示。

图1-6

选择Add Python 3.6 to PATH并单击Install Now。安装过程结束时将会显示图1-7所示的画面。

图1-7

单击Disable path length limit,然后单击Close完成Python的安装。打开Windows菜单下的Windows PowerShell应用,通过下面的命令安装仅支持CPU的TensorFlow版本。

pip3 install tensorflow

安装过程如图1-8所示。

图1-8

安装结果如图1-9所示。

图1-9

现在你可以在Windows系统中,Python 3.5.x或3.6.x环境下使用TensorFlow了。

接下来将介绍如何创建一个Linux虚拟机,以实现在Python 2.7环境下使用TensorFlow。如果你不需要Python 2.7,那么可以直接跳到1.2.5节。推荐使用免费的VirtualBox系统,可在VirtualBox官网获得。在本书编写之际(2017年),VirtualBox最新的稳定版本是v5.0.14。成功安装后,你可以运行Oracle VM VirtualBox Manager控制面板,如图1-10所示。

图1-10

Linux有很多不同风格的发行版,但TensorFlow文档中提到最多的是Ubuntu,我们也将使用Ubuntu Linux。你可以使用任何风格的Linux,但是应该意识到这一点,即不同风格的Linux发行版之间,以及每种发行版的不同版本之间都存在着细微的差别。大多数的差异是良性的,但是有些可能会影响TensorFlow的安装,甚至是影响TensorFlow的使用。

即使在选择了Ubuntu之后,也存在很多不同的版本和配置。你可以在Ubuntu官网上看到这些信息。

我们将安装Ubuntu 14.04.4 LTS(请确保下载适合你计算机的版本)。标记了x86的版本设计为在32位机器上运行,而标记了x64的版本则设计为运行于64位机器上。大多数现代机器都是64位的,所以如果你不确定,那就选择后者。

我们利用一个ISO文件进行安装,该文件本质上等同于一个安装光盘。Ubuntu 14.04.4 LTS的ISO文件是ubuntu-gnome-14.04-desktop-amd64.iso。

下载ISO安装文件之后,我们将创建一个虚拟机,并使用ISO文件在虚拟机上安装Ubuntu Linux。

在Oracle VM VirtualBox Manager上创建虚拟机相当简单,但是需要重点注意其默认选项,因为默认选项并不足以运行TensorFlow。在安装过程中,将会看到接下来的8个界面,最后,它将提示你提供安装文件,该文件正是前面所下载的ISO文件。

首先,设置操作系统的类型,并配置分配给虚拟机的随机存储器(RAM)。

1.注意,我们选择了一个64位的安装,因为我们的Ubuntu镜像是64位的。如果需要,你可以选择使用32位镜像,如图1-11所示。

图1-11

2.为该虚拟机分配多少内存取决于你的机器有多少内存。在图1-12所示的截图中,我们将把一半的RAM(8GB)分配给虚拟机。需要记住的是,只有运行虚拟机时才会使用这些内存,所以我们可以自由分配内存,我们至少可以分配4 GB的内存。

图1-12

3.虚拟机还需要一个硬盘。我们将创建一个虚拟硬盘(Virtual Hard Disk,VHD),如图1-13所示。

图1-13

4.选择虚拟机的硬盘类型,即磁盘镜像VirtualBox Disk Image,VDI),如图1-14所示。

图1-14

5.接下来,选择为VHD(虚拟硬盘)分配多少空间,如图1-15所示。这一点很重要,因为我们很快就会使用庞大的数据集。

图1-15

6.TensorFlow和典型的TensorFlow应用程序有一系列的依赖包,例如NumPy、SciPy和pandas。除此以外我们的练习也将下载大型数据集,这些都将用于训练模型。因此,我们为虚拟硬盘分配12 GB的空间,如图1-16所示。

图1-16

7.虚拟机设置好之后,它将出现在左边的虚拟机列表中。选中它并单击Start按钮,如图1-17所示。这相当于启动了机器。

图1-17

8.当机器第一次启动时,我们需向其提供安装光盘,即前面下载的Ubuntu ISO,如图1-18所示。

图1-18

按照安装说明操作,你将拥有一个完整的可供使用的Ubuntu Linux虚拟机。在此之后,可以按照1.2.1节的内容进行操作。

本节将使用TensorFlow来执行一个简单的数学运算,以测试安装效果。

首先,在Linux或macOS系统中打开终端,或者在Windows中打开Windows PowerShell。

然后通过以下命令运行Python来使用TensorFlow。

python

在Python shell中输入以下程序:

import tensorflow as tf
a = tf.constant(1.0)
b = tf.constant(2.0)
c = a + b
sess = tf.Session()
print(sess.run(c))

运行结果如图1-19所示,最后输出计算结果3.0。

图1-19

在本章中,我们介绍了TensorFlow在三大主要操作系统上的安装操作步骤。通过这一章的学习,读者应该都已经搭建好并运行了该平台。Windows用户会面临另一个挑战,这是因为TensorFlow在Windows系统上只支持Python 3.5.x或Python 3.6.x的64位版本。然而通过这一章的学习,Windows用户也应该搭建好并运行了TensorFlow。现在就让我们开始有趣的TensorFlow之旅吧!

按照操作步骤安装TensorFlow后,下一步是使用一个内置的训练示例来测试安装是否成功。我们将从头开始编写第一个分类器——手写识别器。

在接下来的章节中,我们将回顾TensorFlow工具集并在项目中使用它们;还将回顾主要的深度学习概念,并在项目中运用它们。此外,你将有机会尝试多个行业(从金融到医学,再到语言翻译)的项目。


相关图书

ChatGPT原理与应用开发
ChatGPT原理与应用开发
动手学机器学习
动手学机器学习
机器学习与数据挖掘
机器学习与数据挖掘
机器学习公式详解 第2版
机器学习公式详解 第2版
自然语言处理迁移学习实战
自然语言处理迁移学习实战
AI医学图像处理(基于Python语言的Dragonfly)
AI医学图像处理(基于Python语言的Dragonfly)

相关文章

相关课程