《TensorFlow深度学习实战》一导读

《TensorFlow深度学习实战》一导读_第1张图片

内容简介

本书介绍如何有效地使用谷歌的深度学习开源框架TensorFlow,还将实现不同的深度学习网络。本书除了对一些常见的模型进行了理论介绍,还给出了完整的实现代码,不仅能够对深度学习初学者进行理论与实践的指导,还能为开发人员提供程序设计借鉴。

作者简介


Antonio Gulli

企业领导和软件部门高管,具备创新精神和执行力,并乐于发现和管理全球高科技人才。他是搜索引擎、在线服务、机器学习、信息检索、数据分析以及云计算等方面的专家。目前,他在谷歌华沙担任网站主管和云计算主管,推动Serverless、Kubernetes和Google Cloud UX等项目在欧洲的发展。


Amita Kapoor

印度德里大学电子学系副教授。她在过去的20年里一直在教授神经网络课程。她于1996年取得电子学硕士学位,并于2011年获得博士学位。在攻读博士学位期间,她获得了著名的DAAD奖学金,这笔奖金资助了她在德国卡尔斯鲁厄理工学院的部分研究工作。她曾获得2008年度国际光电子大会颁发的最佳演讲奖。

前言

本书介绍如何有效地使用Google的开源框架TensorFlow进行深度学习。你将实现不同的深度学习网络,如卷积神经网络(CNN)、循环神经网络(RNN)、深度Q learning网络(DQN)和生成对抗网络(GAN),并将学习如何使用TensorFlow的高级封装工具Keras。

你将了解如何使用不同的深层神经架构来执行复杂的任务,并在一些常用数据集(如MNIST、CIFAR-10、Youtube8m等)上了解不同DNN的性能,不仅可以了解TensorFlow支持的不同移动和嵌入式平台,还可以了解如何为深度学习应用程序搭建云平台。你将深入了解TPU架构,以及它们将如何影响DNN的未来。

学完本书,你将理解深度学习实践技术,能够独立开发现实世界中的一些应用,开展如强化学习、GAN、自动编码机等领域的研究。

阅读本书前的准备工作

为更好地学习本书,你需要安装Python 3.5版本(https://www.continuum.io/ downloads)以及TensorFlow(www.tensorflow.org)。建议使用以下硬件配置:

        CPU架构:x86_64

        系统内存:8 GB~32 GB

        CPU:4~8 核

        GPU:可选,最低NVDIA GTX 650

读者对象

本书主要面向想要定期执行机器学习任务的数据科学家机器学习从业者深度学习爱好者。对深度神经网络已有了解并希望获得CNN和RNN等方面实践经验的人会发现本书很有用。

本书结构

在这本书中,你会发现几个频繁出现的小标题(准备工作、具体做法、解读分析、更多内容、拓展阅读),具体含义如下。

准备工作

这部分主要介绍需要做什么,并介绍如何安装所需的软件并进行初步设置。

具体做法

这部分包括实现相应功能的具体步骤。

解读分析

这部分通常包含对具体步骤的详细解释。

更多内容

这部分是扩充知识,以使读者对其有更多的了解。

拓展阅读

这部分将列出一些相关的网址。

下载示例代码

本书的示例代码,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。

勘误和支持

由于译者水平有限,特别担心未能完美传达原作者的意思,建议有条件的读者去阅读英文原著。

致谢

Antonio Gulli

感谢每位读者对本书的关注和信任。在LinkedIn和Facebook上收到的评论数量让我感到诚惶诚恐:每一位读者都为本书的改进提供了巨大的帮助。也要感谢以下各位在写作过程中给予的支持:Susana、Ewa、Ignacy、Dawid、Max、Jarek、Jerzy、Nina、Laura、Antonella、Eric、Ettore、Francesco、Liubov、Marco、Fabio、Giacomo、Saskia、Christina、Wieland和 Yossi。非常感谢我的合作者Amita,以及她的宝贵意见和建议。特别感谢本书的审校者Eric Brewer、Corrado Zoccolo和Sujit Pal审校了整本书的内容。特别感谢我的经理Eyal在写作过程中对我的支持与信任。Charlotte Menora (http://bistrocharlotte.pl/)是位于华沙的一家酒吧,工作之余我在那里写作了本书的部分章节。这是一个鼓舞人心的地方,如果你访问波兰,一定不要错过华沙这个现代化的酷炫城市。最后,非常感谢Packt的整个编辑团队,尤其是Tushar Gupta和Tejas Limkar的支持以及不断的督促和提醒。感谢你们的耐心。

Amita Kapoor

我试图在这本书中总结我在深度神经网络领域学到的知识。我以一种让读者容易理解和运用的方式呈现,所以本书的主要动力来自于你——读者。感谢这本书的每一位读者,是你们激励着我不断前行,尤其是在我懒惰的时候。我还要感谢加尔各答大学的Parongama Sen教授在1994年向我介绍了这个主题,还有我的朋友Nirjara Jain和Shubha Swaminathan在大学图书馆里与我讨论阿西莫夫、他的故事以及未来神经网络将改变社会的预见。非常感谢我的合作者Antonio Guili的宝贵意见,以及本书的审校者Narotam Singh和Nick McClure对全书内容精心审阅并重新检查代码。最后,非常感谢Packt的整个编辑团队,尤其是Tushar Gupta和Tejas Limkar的支持以及不断的督促和提醒。

Narotam Singh(审校者)

我想感谢许多帮助我的人,特别是:我的妻子 Ermelinda ,多年来一直支持我致力于计算机科学研究; Marco Vanneschi 教授,向我介绍美丽的分布式系统世界;我在 Google 的第一任经理 Peter Dickman ,他让我走上了正确的职业生涯,我每天都在和同事们一起学习

目录


第1章 TensorFlow简介  1

1.1 引言  1

1.2 TensorFlow安装  2

1.3 Hello world  6

1.4 理解TensorFlow程序结构  8

1.5 常量、变量和占位符  10

1.6 使用TensorFlow 执行矩阵操作  15

1.7 使用数据流图  17

1.8 从0.x迁移到1.x  18

1.9 使用XLA提升运算性能  19

1.10 调用CPU/GPU设备  21

1.11 TensorFlow与深度学习  24

1.12 DNN问题需要的Python包  28

第2章 回归  30

2.1 引言  30

2.2 选择损失函数  31

2.3 TensorFlow中的优化器  33

2.4 读取CSV文件和数据预处理  36

2.5 房价估计——简单线性回归  39

2.6 房价估计——多元线性回归  42

2.7 MNIST数据集的逻辑回归  45

第3章 神经网络——感知机  50

3.1 引言  50

3.2 激活函数  52

3.3 单层感知机  58

3.4 计算反向传播算法的梯度  60

3.5 使用MLP实现MNIST分类器  63

3.6 使用MLP逼近函数来预测波士顿房价  66

3.7 调整超参数  71

3.8 高级API——Keras  72

第4章 卷积神经网络  75

4.1 引言  75

4.2 创建一个ConvNet来分类手写MNIST数字  79

4.3 创建一个ConvNet来分类CIFAR-10数据集  84

4.4 用VGG19做风格迁移的图像重绘  87

4.5 使用预训练的VGG16网络进行迁移学习  96

4.6 创建DeepDream网络  100

第5章 高级卷积神经网络  105

5.1 引言  105

5.2 为情感分析创建一个ConvNet  106

5.3 检验VGG预建网络学到的滤波器  109

5.4 使用 VGGNet、ResNet、Inception和Xception分类图像  113

5.5 重新利用预建深度学习模型进行特征提取  125

5.6 用于迁移学习的深层InceptionV3网络  126

5.7 使用扩张ConvNet、WaveNet和 NSynth生成音乐  129

5.8 关于图像的问答  134

5.9 利用预训练网络进行视频分类的6种方法  140

第6章 循环神经网络  144

6.1 引言  144

6.2 神经机器翻译——seq2seq RNN训练  150

6.3 神经机器翻译——seq2seq RNN推理  156

6.4 你所需要的是注意力—另一个seq2seq RNN例子  157

6.5 使用RNN像莎士比亚一样写作  161

6.6 基于RNN学习预测比特币价格  165

6.7 多对一和多对多的RNN例子  174

第7章 无监督学习  176

7.1 引言  176

7.2 主成分分析  176

7.3 k均值聚类  181

7.4 自组织映射  186

7.5 受限玻尔兹曼机  191

7.6 基于RBM的推荐系统  196

7.7 用DBN进行情绪检测  198

第8章 自动编码机  205

8.1 引言  205

8.2 标准自动编码机  207

8.3 稀疏自动编码机  212

8.4 去噪自动编码机  217

8.5 卷积自动编码机  221

8.6 堆叠自动编码机  225

第9章 强化学习  231

9.1 引言  231

9.2 学习OpenAI Gym  232

9.3 用神经网络智能体玩Pac-Man游戏  235

9.4 用Q learning玩Cart-Pole平衡游戏  238

9.5 用DQN玩Atari游戏  244

9.6 用策略梯度网络玩Pong游戏  252

第10章 移动端计算  259

10.1 引言  259

10.2 安装适用于macOS和Android的TensorFlow mobile  260

10.3 玩转TensorFlow和Android的示例  265

10.4 安装适用于macOS和iPhone的TensorFlow mobile  268

10.5 为移动设备优化TensorFlow计算图  271

10.6 为移动设备分析TensorFlow计算图  273

10.7 为移动设备转换TensorFlow计算图  275

第11章 生成式模型和CapsNet  278

11.1 引言  278

11.2 学习使用简单GAN虚构MNIST图像  284

11.3 学习使用DCGAN虚构MNIST图像  289

11.4 学习使用DCGAN虚构名人面孔和其他数据集  294

11.5 实现变分自动编码机  297

11.6 学习使用胶囊网络击败MNIST前期的最新成果  305

第12章 分布式TensorFlow和云深度学习  319

12.1 引言  319

12.2 在GPU上使用TensorFlow  322

12.3 玩转分布式TensorFlow:多个GPU和一个CPU  323

12.4 玩转分布式TensorFlow:多服务器  324

12.5 训练分布式TensorFlow MNIST分类器  326

12.6 基于Docker使用TensorFlow Serving  328

12.7 使用计算引擎在谷歌云平台上运行分布式TensorFlow  330

12.8 在谷歌CloudML上运行分布式TensorFlow  333

12.9 在Microsoft Azure上运行分布式TensorFlow  334

12.10 在Amazon AWS上运行分布式TensorFlow  337

附录A 利用AutoML学会学习(元学习)  342

附录B TensorFlow处理器  350

你可能感兴趣的:(《TensorFlow深度学习实战》一导读)