TensorFlow是目前流行的数值计算库,专用于构建分布式、云计算和移动环境。TensorFlow将数据表示为张量,将计算表示为计算图。
《精通TensorFlow》是一本综合指南,可让您理解TensorFlow 1.x的高级功能,深入了解TensorFlow 内核、Keras、 TF Estimator、TFLearn、TF Slim、PrettyTensor和Sonnet。利用TensorFlow和Keras提供的功能,使用迁移学习、生成对抗网络和深度强化学习等概念来构建深度学习模型。通过本书,您将获得在各种数据集(例如 MNIST、CIFAR-10、PTB、text8和COCO图像)上的实践经验。
您还能够学习TensorFlow1.x的高级功能,例如分布式TensorFlow,使用TensorFlow服务部署生产模型,以及在Android和iOS平台上为移动和嵌入式设备构建和部署TensorFlow模型。您将看到如何在R统计软件中调用 TensorFlow和Keras API,还能了解在TensorFlow的代码无法按预期工作时所需的调试技术。
《精通TensorFlow》可帮助您深入了解TensorFlow,使您成为解决人工智能问题的专家。总之,在学习本书之后,可掌握TensorFlow和Keras的产品,并获得构建更智能、更快速、更高效的机器学习和深度学习系统所需的技能。
1.牛津大学物联网课程创建者和首席数据科学家Ajit Jaokar为本书作序并倾情推荐。
2.通过阅读本书,能够深入了解和掌握TensorFlow,并能构建实用的机器学习和深度学习系统。
3.本书涵盖了TensorFlow 1.x的许多高级功能,并涉及很多先进的技术,如迁移学习、深度强化学习、生成对抗网络等。
4.本书提供了大量示例,其代码可以通过GitHub网址下载,具体地址见封面背面。
原书前言
Google公司的 TensorFlow已经成为开发人员在应用程序中引入智能处理技术的主要开发工具。与此同时, TensorFlow已经成为每个组织的主要研究工具和工程工具。因此,需要进一步学习 TensorFlow的高级用例,这些用例可以在各种软件和设备上构建智能系统。 TensorFlow凭借迅速的迭代更新以及代码调试,可将智能理念带入到项目中。因此,精通TensorFlow是创造先进的机器学习、深度学习应用的必由之路。《精通TensorFlow》一书将帮您学习 TensorFlow的所有高级功能。为了使读者学习进入人工智能世界所需的专业知识,本书汇集了关键信息,因此本书可拓展中级 TensorFlow用户的知识面,使其达到更高水平。本书涵盖了从实现先进计算到接近现实世界的研究领域。有了这个非常全面的指南,可以让读者在开发者社区中充分施展才能,也为读者提供了一个为研究工作或项目做出贡献的平台。
本书读者对象
《精通TensorFlow》适用于任何想要用 TensorFlow解决深度学习问题的人员,也适用于那些正在寻找易于理解的技术指南,想深入学习复杂使用案例的技术人员。要想充分利用本书,需要对 TensorFlow和 Python有基本的了解。
本书涵盖的内容
第1章,TensorFlow 101。本章介绍了 TensorFlow的基础知识,例如如何创建张量、常量、变量、占位符和相关操作;了解计算图以及如何将计算图节点放置在各种设备(如 GPU)上。通过本章,还可以学习如何使用 TensorBoard来可视化各种中间结果和最终的输出值。
第2章,TensorFlow的高级库。本章介绍了几个高级库,包括 TF Contrib Learn、TF Slim、TFLearn、Sonnet和 Pretty Tensor等。
第3章,Keras 101。本章详细介绍了高级库 Keras,这是 TensorFlow核心之一。
第4章,基于 TensorFlow的经典机器学习算法。本章介绍如何使用 TensorFlow来实现经典的机器学习算法,如线性回归和逻辑回归分类。
第5章,基于 TensorFlow和 Keras的神经网络和多层感知机。本章介绍了神经网络的概念,并介绍如何构建简单的神经网络模型,还介绍了如何构建多层感知机(MLP)。
第6章,基于 TensorFlow和 Keras的 RNN。本章介绍如何用 TensorFlow和 Keras构建 RNN。这里将介绍 RNN、长短期记忆( LSTM)网络和门控循环单元( GRU)网络的内部结构。本章还会简要介绍在 TensorFlow和 Keras中用于实现 RNN模型的 API函数和类。
第7章,基于 TensorFlow和 Keras的 RNN在时间序列数据中的应用。本章介绍了如何构建和训练基于时间序列数据的 RNN模型,并提供相应的示例。
第8章,基于 TensorFlow和 Keras 的 RNN在文本数据中的应用。本章介绍如何构建和训练基于文本数据的 RNN模型,并给出相应的示例。这一章会学习使用 TensorFlow和 Keras来构建词向量,然后通过基于词向量嵌入的 LSTM模型从示例文本数据中生成文本。
第9章,基于 TensorFlow和 Keras的 CNN。本章介绍用于处理图像数据的 CNN模型,并给出基于 TensorFlow和 Keras库的示例,该示例实现了 LeNet架构模式。
第10章,基于 TensorFlow和 Keras的自编码器。本章介绍了用于处理图像数据的自编码模型,并给出基于 TensorFlow和 Keras库的示例,同时也给出了简单自编码器、去噪自编码器和变分自编码器的实现。
第11章,使用 TF服务提供生成环境下的 TensorFlow模型。本章会介绍如何用 TensorFlow服务来部署模型,学习如何在 Docker容器和 Kubernetes集群中使用 TF服务进行部署。
第12章,迁移学习模型和预训练模型。本章会介绍如何用预训练模型来进行预测,学习如何在不同的数据集上重新训练模型。本章提供基于 VGG16和 Inception V3模型的示例,这些模型预先在 ImageNet数据集上训练好,并用来预测 COCO数据集中的图像;也会介绍一个示例,它通过使用 COCO数据集重新训练模型的最后一层来改进预测效果。
第13章,深度强化学习。本章会介绍强化学习和 OpenAIgym框架。也会介绍如何使用各种强化学习策略(包括深度 Q网络)来构建和训练多个模型。
第14章,生成对抗网络( GAN)。本章介绍如何通过 TensorFlow和 Keras来构建和训练生成对抗模型。
第15章,基于 TensorFlow集群的分布式模型。本章将介绍如何基于 TensorFlow集群来训练 TensorFlow模型,这是一种分布式训练方法。本章还会通过示例介绍以数据并行方式训练模型时的异步和同步更新方法。
第16章,移动和嵌入式平台上的 TensorFlow模型。本章会介绍如何在基于 iOS和 Android平台的移动设备上部署 TensorFlow模型。本章涵盖了基于 TensorFlow库的 TF Mobile和 TF Lite API。
第17章,R中的 TensorFlow和 Keras。本章介绍了如何在 R统计软件中构建和训练 TensorFlow模型,还介绍 R Studio用于实现 TF Core,TF Estimators和 Keras API的三个软件包。
第18章,调试 TensorFlow模型。本章会介绍当模型无法按预期工作时,如何发现热点问题的策略和技巧。本章涵盖了 TensorFlow调试器和其他调试方法。
附录,张量处理单元。本章简要介绍了张量处理单元( TPU)。TPU是用来训练和
Armando Fandango利用自己在深度学习、计算方法和分布式计算方面的专业知识,创造了人工智能(AI)产品。他为Owen.ai公司在AI产品战略方面提供建议。他创建了NeuraSights公司,其目标是利用神经网络创建有技术深度的产品。他还创建了Vets2Data公司,这家非盈利机构主要帮助美国退役军人掌握AI技能。
Armando出版了2本专著,并在国际期刊和会议上发表了他的研究成果。
译者序
原书序
原书前言
第 1章 TensorFlow 101 // 1
1.1 什么是 TensorFlow // 1
1.2 TensorFlow内核 // 2
1.2.1 简单的示例代码 -Hello TensorFlow // 2
1.2.2 张量 // 3
1.2.3 常量 // 4
1.2.4 操作 // 5
1.2.5 占位符 // 6
1.2.6 从 Python对象创建张量 // 7
1.2.7 变量 // 9
1.2.8 由库函数生成的张量 // 10
1.2.9 通过 tf.get_variable( )获取变量 // 13
1.3 数据流图或计算图 // 14
1.3.1 执行顺序和延迟加载 // 15
1.3.2 跨计算设备执行计算图 -CPU和 GPU // 15
1.3.3 多个计算图 // 18
1.4 TensorBoard // 19
1.4.1 TensorBoard最小的例子 // 19
1.4.2 TensorBoard的细节 // 21
1.5 总结 // 21
第 2章 TensorFlow的高级库 // 22
2.1 TF Estimator // 22
2.2 TF Slim // 24
2.3 TFLearn // 25
2.3.1 创建 TFLearn层 // 26
2.3.2 创建 TFLearn模型 // 30
2.3.3 训练 TFLearn模型 // 30
2.3.4 使用 TFLearn模型 // 30
2.4 PrettyTensor // 31
2.5 Sonnet // 32
2.6 总结 // 34
第 3章 Keras101 // 35
3.1 安装 Keras // 35
3.2 Keras的神经网络模型 // 36
3.2.1 在 Keras中创建模型的过程 // 36
3.3 创建 Keras模型 // 36
3.3.1 用于创建 Keras模型的序列化 API // 36
3.3.2 用于创建 Keras模型的功能性 API // 37
3.4 Keras的层 // 37
3.4.1 Keras内核层 // 37
3.4.2 Keras卷积层 // 38
3.4.3 Keras池化层 // 38
3.4.4 Keras局连接层 // 39
3.4.5 Keras循环层 // 39
3.4.6 Keras嵌入层 // 39
3.4.7 Keras合并层 // 39
3.4.8 Keras高级激活层 // 40
3.4.9 Keras归一化层 // 40
3.4.10 Keras噪声层 // 40
3.5 将网络层添加到 Keras模型中 // 40
3.5.1 利用序列化 API将网络层添加到 Keras模型中 // 40
3.5.2 利用功能性 API将网络层添加到 Keras模型中 // 41
3.6 编译 Keras模型 // 41
3.7 训练 Keras模型 // 42
3.8 使用 Keras模型进行预测 // 42
3.9 Keras中的其他模块 // 43
3.10 基于 MNIST数据集的 Keras顺序模型示例 // 43
3.11 总结 // 45
第 4章 基于TensorFlow的经典机器学习算法 // 47
4.1 简单的线性回归 // 48
4.1.1 数据准备 // 49
4.1.2 建立简单的回归模型 // 50
4.1.3 使用训练好的模型进行预测 // 55
4.2 多元回归 // 55
4.3 正则化回归 // 58
4.3.1 Lasso正则化 // 59
4.3.2 岭正则化 // 62
4.3.3 弹性网正则化 // 64
4.4 使用 Logistic回归进行分类 // 65
4.4.1 二分类的 Logistic回归 // 65
4.4.2 多类分类的 Logistic回归 // 66
4.5 二分类 // 66
4.6 多分类 // 69
4.7 总结 // 73
第 5章 基于 TensorFlow和 Keras的神经网络和多层感知机 // 74
5.1 感知机 // 74
5.2 多层感知机 // 76
5.3 用于图像分类的多层感知机 // 77
5.3.1 通过 TensorFlow构建用于 MNIST分类的多层感知机 // 77
5.3.2 通过 Keras构建用于 MNIST分类的多层感知机 // 83
5.3.3 通过 TFLearn构建用于 MNIST分类的多层感知机 // 85
5.3.4 多层感知机与 TensorFlow、 Keras和 TFLearn的总结 // 86
5.4 用于时间序列回归的多层感知机 // 86
5.5 总结 // 89
第 6章 基于TensorFlow和Keras的 RNN // 90
6.1 简单 RNN // 90
6.2 RNN改进版本 // 92
6.3 LSTM网络 // 93
6.4 GRU网络 // 95
6.5 基于TensorFlow的 RNN // 96
6.5.1 TensorFlow的RNN单元类 // 96
6.5.2 TensorFlow 的RNN模型构造类 // 97
6.5.3 TensorFlow的 RNN单元封装类 // 97
6.6 基于Keras的 RNN // 98
6.7 RNN的应用领域 // 98
6.8 将基于Keras的 RNN用于MNIST数据 // 99
6.9 总结 // 100
第 7章 基于TensorFlow和 Keras的 RNN在时间序列数据中的应用 //101
7.1 航空公司乘客数据集 // 101
7.1.1 加载 airpass数据集 // 102
7.1.2 可视化 airpass数据集 // 102
7.2 使用TensorFlow为 RNN模型预处理数据集 // 103
7.3 TensorFlow中的简单 RNN // 104
7.4 TensorFlow中的 LSTM网络 // 106
7.5 TensorFlow中的 GRU网络 // 107
7.6 使用 Keras为 RNN模型预处理数据集 // 108
7.7 基于 Keras的简单 RNN // 109
7.8 基于 Keras的 LSTM网络 // 111
7.9 基于 Keras的 GRU网络 // 112
7.10 总结 // 113
第 8章 基于TensorFlow和 Keras的RNN在文本数据中的应用 // 114
8.1 词向量表示 // 114
8.2 为 word2vec模型准备数据 // 116
8.2.1 加载和准备PTB数据集 // 117
8.2.2 加载和准备text8数据集 // 118
8.2.3 准备小的验证集 // 119
8.3 使用TensorFlow的 skip-gram模型 // 119
8.4 使用t-SNE可视化单词嵌入 // 124
8.5 基于Keras的 skip-gram模型 // 126
8.6 使用TensorFlow和 Keras中的 RNN模型生成文本 // 130
8.6.1 使用TensorFlow中的 LSTM模型生成文本 // 131
8