书籍作者:[美] 保罗·加莱奥内 | ISBN:9787111659273 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:2464 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书通过聚焦于开发基于神经网络的解决方案来介绍机器学习,首先将从熟悉构建深度学习解决方案所需的概念和技术开始,然后介绍如何创建分类器、构建目标检测和语义分割神经网络、训练生成式模型,以及使用TF 2.0的工具,如TensorFlow Datasets和TensorFlow Hub,加速开发过程。学完本书之后,读者将能够使用TF 2.0开发任何机器学习问题的解决方案,并能将它们部署到生产环境之中。
保罗·加莱奥内(Paolo Galeone)是一位具有丰富实践经验的计算机工程师。获得硕士学位后,他加入了意大利博洛尼亚大学的计算机视觉实验室并担任研究员,在那里他丰富了自己在计算机视觉和机器学习领域的知识。目前,他领导着意大利ZURU科技公司的计算机视觉和机器学习实验室。
2019年,谷歌授予他机器学习领域的谷歌开发技术专家(Google Developer Expert,GDE)称号,以此认可他的专业技能。作为一名GDE,他通过写博客、在会议上演讲、参与开源项目以及回答Stack Overflow上面的问题,分享了他对机器学习和TensorFlow框架的热爱。
译者简介:
闫龙川 硕士,国家电网有限公司信息通信分公司高级工程师,信息通信技术专家,主要从事电力信息通信系统运行技术研究工作,研究兴趣包括深度学习、强化学习、自然语言处理、云计算及数据中心管理等。
白东霞 博士,国家电网有限公司信息通信分公司高级工程师,主要从事电力信息系统运行测试技术研究工作,研究兴趣包括人工智能、密码理论等。
郭永和 博士,国家电网有限公司信息通信分公司高级工程师,主要从事电力信息系统网络安全技术研究工作,研究兴趣包括机器学习、大数据分析、计算机体系结构、密码技术等。
李 妍 博士,国家电网有限公司信息通信分公司工程师,主要从事电力信息通信系统故障诊断技术研究工作,研究兴趣包括机器学习、人工智能等。
TensorFlow是流行的、使用广泛的机器学习框架,它使得每个人都能轻松开发机器学习解决方案。使用TensorFlow 2.0,你将研究一个改进后的框架结构,它提供了大量的新特性,以提升开发者的工作效率和便于开发者使用。
本书通过聚焦于开发基于神经网络的解决方案来介绍机器学习。书中从构建深度学习解决方案所需的概念和技术开始介绍,之后将介绍如何创建分类器、构建目标检测和语义分割神经网络、训练生成式模型,以及使用TensorFlow 2.0的工具(如TensorFlow Datasets和TensorFlow Hub)加速开发过程。
学完本书之后,你将能够使用TensorFlow 2.0开发任何机器学习问题的解决方案,并能将它们部署到生产环境之中。
通过阅读本书,你将:
掌握机器学习和神经网络技术,解决有挑战性的任务。
学会使用TensorFlow 2.0的新特性加速开发。
学会使用TensorFlow Datasets (tfds)和tf.data API建立高效的数据输入流水线。
学会使用 TensorFlow Hub进行迁移学习和微调。
能够定义和训练神经网络,解决目标检测和语义分割问题。
能够训练生成式对抗网络(GAN)生成图像和数据分布。
学会使用SavedModel文件格式将模型或者通用的计算图部署到生产环境中。
技术领导者正在采用神经网络来增强他们的产品,使之更加智能,或者用一句市场营销的话来说,就是用人工智能赋能。本书是一本关于TensorFlow的动手实践指南,内容涉及其内部结构、2.0版的新特性以及如何使用它们来创建基于神经网络的应用程序。学完本书,你将精通TensorFlow的架构及其新特性。借助神经网络,你将能够轻松地解决机器学习方面的问题。
这本书首先对机器学习和神经网络的理论进行概述,然后介绍TensorFlow库,包括1.x和2.0版本。通过阅读本书并借助易于学习的示例,你将精通神经网络的工作原理。接下来,你将学习如何掌握优化技术和算法,以便使用TensorFlow 2.0提供的新模块构建各种神经网络架构。此外,在分析了TensorFlow结构之后,你将在研究工作和项目中学习如何实现更复杂的神经网络架构,例如用于分类的CNN、语义分割网络、生成式对抗网络等。
在本书的最后,你将掌握TensorFlow结构,并能够毫不费力地利用该机器学习框架来训练和使用不同复杂度的神经网络。
本书读者
本书面向希望了解TensorFlow结构和新特性的数据科学家、机器学习的开发人员、深度学习的研究人员和具有统计知识的开发者。要充分利用这本书,需要你掌握Python编程语言方面的知识。
本书主要内容
第1章涵盖机器学习的基本原理:什么是有监督学习、无监督学习和半监督学习,以及为什么这些区别非常重要。此外,你将开始了解如何创建数据流水线,如何度量算法的性能,以及如何验证结果。
第2章专注于神经网络。你将了解机器学习模型的优点,如何进行网络学习,以及如何在实践中执行模型参数更新。在该章结束时,你将了解到反向传播和网络参数更新背后的直觉。此外,你将了解为什么需要深层神经网络架构来解决具有挑战性的任务。
第3章涵盖TensorFlow的结构—该结构在1.x和2.x版本之间共享。
第4章演示TensorFlow 1.x和TensorFlow 2.x之间的区别。你将开始使用这两个版本开发一些简单的机器学习模型,还将了解这两个版本所有的共同特性。
第5章演示如何使用tf.data API定义完整的数据输入流水线,以及如何使用tf.estimator API定义实验。在该章结束时,你将能够使用tf.data和tf.io.gfile API的所有功能,创建复杂高效的输入流水线。
第6章介绍如何利用TensorFlow Hub与Keras API的紧密集成,轻松进行迁移学习和微调。
第7章演示如何扩展分类器,使其成为一个目标检测器以回归分析边界框的坐标,还介绍了更复杂的目标检测架构。
第8章介绍如何实现语义分割网络,如何为此类任务准备数据集,以及如何训练和测试模型的性能。你将使用U-Net解决语义分割问题。
第9章从理论和实践的角度来介绍GAN。你将了解生成模型的结构,以及如何使用TensorFlow 2.0轻松实现对抗性训练。
第10章演示如何将训练过的模型转换为完整的应用程序。该章还介绍如何将训练好的模型以指定的表示方式导出(保存模型)并在完整的应用程序中使用它。在该章结束时,你能够导出一个训练好的模型,并在Python、TensorFlow.js以及Go中通过tfgo库来使用它。
充分利用本书
你需要对神经网络有一些基本的了解,但这并不是必需的,因为本书将从理论和实践的角度来讨论这些主题,有基本的机器学习算法工作经验更佳。你需要对Python 3有很好的了解。
你应该已经知道如何使用pip安装软件包,如何设置工作环境来使用TensorFlow,以及如何启用(如果可用)GPU加速。此外,还需要有良好的编程概念方面的背景知识,如命令式语言与描述性语言以及面向对象编程。
在学完前两章机器学习和神经网络理论的内容之后,第3章将介绍环境设置。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
该书的代码包也托管在GitHub上,网址为https://github.com/PacktPublishing/Hands-on-Neural-Networks-with-TensorFlow-2.0。如果对代码有更新,将在现有的GitHub存储库上进行更新。
此外,在https://github.com/PacktPublishing/上有丰富的图书和视频目录,以及其他的代码包。
排版约定
代码片段如下:
命令行输入和输出如下所示:
黑体:表示新术语、重要的词或者屏幕上看到的词句。例如,菜单或对话框中出现的词。举例说明:“tf.Graph图结构的第二个特点是它的图集合。”
警告或重要说明的图标。
提示和技巧的图标。
译者序
前言
作者简介
审校者简介
第一部分 神经网络基础
第1章 什么是机器学习2
1.1 数据集的重要性3
1.1.1 n维空间5
1.1.2 维度诅咒8
1.2 有监督学习9
1.2.1 距离和相似性—k-NN算法10
1.2.2 参数模型11
1.2.3 评估模型性能—度量指标13
1.3 无监督学习18
1.4 半监督学习19
1.5 总结20
1.6 练习题20
第2章 神经网络与深度学习22
2.1 神经网络23
2.1.1 生物神经元23
2.1.2 人工神经元24
2.1.3 全连接层25
2.1.4 激活函数27
2.1.5 损失函数29
2.1.6 参数初始化30
2.2 优化31
2.2.1 梯度下降法32
2.2.2 梯度下降优化算法34
2.2.3 反向传播和自动微分37
2.3 卷积神经网络39
2.3.1 卷积运算符39
2.3.2 二维卷积40
2.3.3 卷间的二维卷积41
2.3.4 1×1×D卷积44
2.4 正则化45
2.4.1 dropout45
2.4.2 数据扩充48
2.4.3 早期停止48
2.4.4 批量归一化49
2.5 总结50
2.6 练习题51
第二部分 TensorFlow基础
第3章 TensorFlow图架构54
3.1 环境设置55
3.1.1 TensorFlow 1.x的环境设置56
3.1.2 TensorFlow 2.0的环境设置57
3.2 数据流图58
3.2.1 主要结构—tf.Graph60
3.2.2 图定义—从tf.Operation到tf.Tensor60
3.2.3 图放置—tf.device64
3.2.4 图执行—tf.Session66
3.2.5 静态图中的变量69
3.3 模型定义和训练72
3.3.1 用tf.layers定义模型72
3.3.2 自动微分—损失函数和优化器75
3.4 用Python操作图78
3.4.1 给占位符赋值79
3.4.2 总结记录80
3.4.3 保存模型参数和模型选择81
3.5 总结83
3.6 练习题85
第4章 TensorFlow 2.0架构86
4.1 重新学习这个框架87
4.2 Keras框架及其模型88
4.2.1 顺序API90
4.2.2 函数式API92
4.2.3 子类方法93
4.3 eager执行模式和新的特征94
4.3.1 基本示例94
4.3.2 函数,而不是会话96
4.3.3 不再有全局的东西97
4.3.4 控制流99
4.3.5 GradientTape 101
4.3.6 定制训练循环102
4.3.7 保存和恢复模型状态105
4.3.8 总结记录和指标度量107
4.3.9 AutoGraph111
4.4 代码库迁移115
4.5 总结117
4.6 练习题117
第5章 高效的数据输入流水线和估计器API120
5.1 高效的数据输入流水线121
5.1.1 输入流水线的结构121
5.1.2 tf.data.Dataset对象122
5.1.3 性能优化125
5.1.4 构建自己的数据集126
5.1.5 数据扩充127
5.1.6 TensroFlow 数据集—tdfs128
5.1.7 Keras整合130
5.1.8 eager整合131
5.2 估计器API132
5.2.1 数据输入流水线134
5.2.2 定制估计器136
5.2.3 预制估计器139
5.3 总结140
5.4 练习题141
第三部分 神经网络应用
第6章 使用TensorFlow Hub进行图像分类144
6.1 获取数据145
6.2 迁移学习147
6.2.1 TensorFlow Hub149
6.2.2 使用Inception v3作为特征提取器150
6.2.3 使数据适应模型152
6.2.4 建立模型—hub.KerasLayer152
6.2.5 训练与评估154
6.2.6 训练速度155
6.3 微调156
6.3.1 何时微调157
6.3.2 TensorFlow Hub集成157
6.3.3 训练和评估158
6.3.4 训练速度159
6.4 总结159
6.5 练习题160
第7章 目标检测162
7.1 获取数据163
7.2 目标定位167
7.2.1 定位是一个回归问题168
7.2.2 IoU173
7.2.3 平均精度175
7.2.4 平均精度均值175
7.2.5 改进训练脚本176
7.3 分类和定位177
7.3.1 多任务学习177
7.3.2 双头网络178
7.3.3 基于锚的检测器180
7.3.4 锚框180
7.4 总结182
7.5 练习题182
第8章 语义分割和自定义数据集生成器184
8.1 语义分割184
8.1.1 挑战185
8.1.2 反卷积—转置卷积186
8.1.3 U-Net架构187
8.2 创建一个TensorFlow数据集生成器191
8.2.1 层次化结构192
8.2.2 数据集类和DatasetInfo193
8.2.3 创建数据集分割194
8.2.4 生成示例195
8.2.5 使用生成器198
8.3 模型训练与评估198
8.3.1 数据准备199
8.3.2 训练循环和Keras回调函数199
8.3.3 评估与推论201
8.4 总结203
8.5 练习题204
第9章 生成式对抗网络206
9.1 了解GAN及其应用206
9.1.1 价值函数207
9.1.2 非饱和价值函数208
9.1.3 模型定义和训练阶段208
9.1.4 GAN的应用209
9.2 无条件的GAN211
9.2.1 准备数据211
9.2.2 定义生成器212
9.2.3 定义鉴别器213
9.2.4 定义损失函数214
9.2.5 无条件的GAN中的对抗训练过程215
9.3 有条件的GAN219
9.3.1 为有条件的GAN获取数据220
9.3.2 在有条件的GAN中定义生成器220
9.3.3 在有条件的GAN中定义鉴别器221
9.3.4 对抗训练过程222
9.4 总结223
9.5 练习题224
第10章 在生产环境中部署模型226
10.1 SavedModel序列化格式226
10.1.1 特征227
10.1.2 通过Keras模型创建SavedModel 228
10.1.3 使用通用函数进行SavedModel转换229
10.2 Python部署231
10.2.1 通用计算图 231
10.2.2 Keras模型 233
10.2.3 平面图234
10.3 支持部署的平台235
10.3.1 TensorFlow.js236
10.3.2 Go绑定和tfgo240
10.4 总结243
10.5 练习题244
很好的书啊啊啊啊啊啊值得推荐
2020-08-25 23:21:29
服务很好,速度很快
2020-08-28 22:18:26