新書推薦:
《
设计中的比例密码:建筑与室内设计
》
售價:HK$
87.4
《
冯友兰和青年谈心系列:看似平淡的坚持
》
售價:HK$
55.8
《
汉字理论与汉字阐释概要 《说解汉字一百五十讲》作者李守奎新作
》
售價:HK$
76.2
《
汗青堂丛书144·决战地中海
》
售價:HK$
168.0
《
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
》
售價:HK$
54.9
《
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
》
售價:HK$
87.4
《
知宋·宋代之科举
》
售價:HK$
99.7
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:HK$
99.7
|
編輯推薦: |
(1)作者经验丰富:核心作者在大数据和人工智能领域有着超过20年的工作经验,实战经验非常丰富,其他几位作者也在大数据和人工智能领域颇有造诣。
(2)畅销书全面升级:第1版销量和口碑俱佳,是深度学习领域的畅销书,第2版根据TensorFlow新版本升级,技术性、实战性、针对性、易读性进一步提升。
(3)TensorFlow领域事实标准:因为内容扎实、可读性强,第1版被读者誉为TensorFlow领域的标准著作,是读者的shou选。
(4)深度学习双子星:本书是《Python深度学习:基于PyTorch(第2版)》的姊妹篇,这两本书均是深度学习领域的畅销书。
(5)进行谋划、通俗易懂:本书在内容的选择、安排和表现形式上精心谋划,目的是确保高质量内容的同时,让深度学习的学习门槛大大降低。
|
內容簡介: |
《Python深度学习:基于PyTorch 第2版》
这是一本能指导读者快速掌握PyTorch和深度学习的著作,从PyTorch的原理到应用,从深度学习到强化学习,提供了全栈解决方案。
第1版上市后销量和口碑俱佳,是深度学习领域的畅销书,被誉为PyTorch领域的标准著作。第2版在第1版的基础上,去芜存菁,与时俱进,根据PyTorch新版本全面升级,技术性、实战性、丰富性、针对性、易读性均得到了进一步提升,必能帮助读者更轻松、更高效地进入深度学习的世界。
全书一共19章,在结构上分为三大部分:
部分(第1~4章) PyTorch基础
首先有针对性地讲解了Python和PyTorch的基石NumPy中的关键知识,然后详细讲解了PyTorch的基础知识、神经网络工具箱和数据处理工具箱等内容,帮助读者快速了解和掌握PyTorch。
第二部分(第5~10章) 深度学习基础
依次讲解了机器学习、视觉处理、自然语言处理、注意力机制、目标检测、语义分割、生成式深度学习等机器学习和深度学习的核心技术的原理和使用。
第三部分(第11~19章) 深度学习实战
通过实战案例的方式,详细讲解了PyTorch在人脸检测与识别、迁移学习、中英文互译、图像分类、语义分割、 生成模型、对抗攻击等领域的应用和解决方案。后重点介绍了强化学习和深度强化学习的基础理论、常用算法及相关实例。
更为重要的是,为了让本书通俗易懂,在内容安排和写作方式上也颇花了一番心思。内容选择上,广泛涉猎、重点突出、注重实战;内容安排上,实例切入、由浅入深、循序渐进;表达形式上,深度抽象、化繁为简、用图说话。
《Python深度学习:基于TensorFlow 第2版 》
这是一本能指导读者快速掌握TensorFlow和深度学习的著作,从TensorFlow的原理到应用,从深度学习到强化学习,提供了全栈解决方案。
第1版上市后销量和口碑俱佳,是深度学习领域的畅销书,被誉为TensorFlow领域的标准著作。第2版在第1版的基础上,去芜存菁,与时俱进,根据TensorFlow新版本全面升级,技术性、实战性、针对性、易读性均得到了进一步提升,必能帮助读者更轻松、更高效地进入深度学习的世界。
全书一共20章,在结构上分为三大部分:
部分(第1~5章) TensorFlow基础
首先有针对性地讲解了Python和TensorFlow的基石NumPy中的关键知识,然后详细讲解了TensorFlow的基础知识、建模方法、数据处理、可视化等内容,帮助读者快速了解和掌握TensorFlow。
第二部分(第6~12章) 深度学习基础
依次讲解了机器学习、神经网络、视觉处理、自然语言处理、注意力机制、目标检测、生成式深度学习等深度学习核心技术的原理和使用。
第三部分(第13~18章) 深度学习实践
通过6个综合实例,详细讲解了TensorFlow在生成模型、目标检测、人脸识别、文本检测与识别以及Transformer架构在图像处理和自然语言处理等方面的应用。
第四部分(第19~20章) 强化学习
重点介绍了强化学习基础理论、常用算法及相关实例。
更为重要的是,为了更通俗易懂,本书在内容安排和写作方式上也颇花了一番心思。内容安排上,由点到面、由易到难,找准突破口;写作方式上,采用了图形化的表达,一图胜千言。
|
關於作者: |
吴茂贵
资深大数据和人工智能技术专家,就职于中国外汇交易中心,在BI、数据挖掘与分析、数据仓库、机器学习等领域工作超过20年。在基于Spark、TensorFlow、PyTorch、Keras等的机器学习和深度学习方面有大量的工程实践实践。著有《Python深度学习:基于PyTorch》《深度实践Spark机器学习》等畅销书。
|
目錄:
|
《Python深度学习:基于PyTorch 第2版》
前言
第1版前言
部分 PyTorch基础
第1章 NumPy基础知识2
1.1 生成NumPy数组3
1.1.1 数组属性4
1.1.2 利用已有数据生成数组4
1.1.3 利用 random 模块生成数组5
1.1.4 生成特定形状的多维数组7
1.1.5 利用arange、linspace
函数生成数组8
1.2 读取数据9
1.3 NumPy的算术运算11
1.3.1 逐元素操作11
1.3.2 点积运算12
1.4 数组变形13
1.4.1 修改数组的形状13
1.4.2 合并数组16
1.5 批处理19
1.6 节省内存20
1.7 通用函数21
1.8 广播机制23
1.9 小结24
第2章 PyTorch基础知识25
2.1 为何选择PyTorch25
2.2 PyTorch的安装配置26
2.2.1 安装CPU版PyTorch26
2.2.2 安装GPU版PyTorch28
2.3 Jupyter Notebook环境配置30
2.4 NumPy与Tensor31
2.4.1 Tensor概述31
2.4.2 创建Tensor32
2.4.3 修改Tensor形状34
2.4.4 索引操作35
2.4.5 广播机制35
2.4.6 逐元素操作36
2.4.7 归并操作37
2.4.8 比较操作37
2.4.9 矩阵操作38
2.4.10 PyTorch与NumPy比较39
2.5 Tensor与autograd39
2.5.1 自动求导要点40
2.5.2 计算图40
2.5.3 标量反向传播41
2.5.4 非标量反向传播42
2.5.5 切断一些分支的反向传播45
2.6 使用NumPy实现机器学习任务47
2.7 使用Tensor及autograd实现机器
学习任务49
2.8 使用优化器及自动微分实现机器
学习任务51
2.9 把数据集转换为带批量处理功能的
迭代器52
2.10 使用TensorFlow 2实现机器
学习任务54
2.11 小结55
第3章 PyTorch神经网络工具箱56
3.1 神经网络核心组件56
3.2 构建神经网络的主要工具57
3.2.1 nn.Module57
3.2.2 nn.functional58
3.3 构建模型59
3.3.1 继承nn.Module基类构建模型59
3.3.2 使用nn.Sequential按层
顺序构建模型60
3.3.3 继承nn.Module基类并应用
模型容器来构建模型63
3.3.4 自定义网络模块66
3.4 训练模型68
3.5 实现神经网络实例69
3.5.1 背景说明69
3.5.2 准备数据70
3.5.3 可视化源数据71
3.5.4 构建模型72
3.5.5 训练模型72
3.6 小结74
第4章 PyTorch数据处理工具箱75
4.1 数据处理工具箱概述75
4.2 utils.data76
4.3 torchvision78
4.3.1 transforms78
4.3.2 ImageFolder79
4.4 可视化工具81
4.4.1 TensorBoard简介81
4.4.2 用TensorBoard可视化
神经网络82
4.4.3 用TensorBoard可视化损失值83
4.4.4 用TensorBoard可视化特征图84
4.5 小结85
第二部分 深度学习基础
第5 章 机器学习基础88
5.1 机器学习的基本任务88
5.1.1 监督学习89
5.1.2 无监督学习89
5.1.3 半监督学习90
5.1.4 强化学习90
5.2 机器学习的一般流程90
5.2.1 明确目标91
5.2.2 收集数据91
5.2.3 数据探索与预处理91
5.2.4 选择模型及损失函数91
5.2.5 评估及优化模型92
5.3 过拟合与欠拟合93
5.3.1 权重正则化93
5.3.2 dropout正则化94
5.3.3 批量归一化97
5.3.4 层归一化99
5.3.5 权重初始化99
5.4 选择合适的激活函数100
5.5 选择合适的损失函数101
5.6 选择合适的优化器103
5.6.1 传统梯度优化算法104
5.6.2 批量随机梯度下降法105
5.6.3 动量算法106
5.6.4 Nesterov动量算法108
5.6.5 AdaGrad算法109
5.6.6 RMSProp算法111
5.6.7 Adam算法112
5.6.8 Yogi算法113
5.6.9 使用优化算法实例114
5.7 GPU加速116
5.7.1 单GPU加速116
5.7.2 多GPU加速117
5.7.3 使用GPU时的注意事项120
5.8 小结121
第6章 视觉处理基础122
6.1 从全连接层到卷积层122
6.1.1 图像的两个特性123
6.1.2 卷积神经网络概述124
6.2 卷积层125
6.2.1 卷积核127
6.2.2 步幅129
6.2.3 填充130
6.2.4 多通道上的卷积131
6.2.5 激活函数134
6.2.6 卷积函数135
6.2.7 转置卷积136
6.2.8 特征图与感受野137
6.2.9 全卷积网络138
6.3 池化层139
6.3.1 局部池化140
6.3.2 全局池化140
6.4 现代经典网络142
6.4.1 LeNet-5模型142
6.4.2 AlexNet模型143
6.4.3 VGG模型143
6.4.4 GoogLeNet模型144
6.4.5 ResNet模型145
6.4.6 DenseNet模型146
6.4.7 CapsNet模型148
6.5 使用卷积神经网络实现CIFAR10
多分类149
6.5.1 数据集说明149
6.5.2 加载数据149
6.5.3 构建网络151
6.5.4 训练模型151
6.5.5 测试模型152
6.5.6 采用全局平均池化153
6.5.7 像Keras一样显示各层参数154
6.6 使用模型集成方法提升性能156
6.6.1 使用模型156
6.6.2 集成方法157
6.6.3 集成效果158
6.7 使用现代经典模型提升性能158
6.8 小结159
第7章 自然语言处理基础160
7.1 从语言模型到循环神经网络160
7.1.1 链式法则161
7.1.2 马可夫假设与N元语法模型161
7.1.3 从N元语法模型到隐含
状态表示161
7.1.4 从神经网络到有隐含状态的
循环神经网络162
7.1.5 使用循环神经网络构建
语言模型164
7.1.6 多层循环神经网络164
7.2 正向传播与随时间反向传播165
7.3 现代循环神经网络167
7.3.1 LSTM168
7.3.2 GRU169
7.3.3 Bi-RNN169
7.4 循环神经网络的PyTorch实现170
7.4.1 使用PyTorch实现RNN170
7.4.2 使用PyTorch实现LSTM172
7.4.3 使用PyTorch实现GRU174
7.5 文本数据处理175
7.6 词嵌入176
7.6.1 Word2Vec原理177
7.6.2 CBOW模型177
7.6.3 Skip-Gram模型178
7.7 使用PyTorch实现词性判别179
7.7.1 词性判别的主要步骤179
7.7.2 数据预处理180
7.7.3 构建网络180
7.7.4 训练网络181
7.7.5 测试模型182
7.8 用LSTM预测股票行情183
7.8.1 导入数据183
7.8.2 数据概览183
7.8.3 预处理数据184
7.8.4 定义模型185
7.8.5 训练模型185
7.8.6 测试模型186
7.9 几种特殊架构187
7.9.1 编码器-解码器架构187
7.9.2 Seq2Seq架构189
7.10 循环神经网络应用场景189
7.11 小结190
第8章 注意力机制191
8.1 注意力机制概述191
8.1.1 两种常见注意力机制192
8.1.2 来自生活的注意力192
8.1.3 注意力机制的本质192
8.2 带注意力机制的编码器-解码器架构194
8.2.1 引入注意力机制194
8.2.2 计算注意力分配概率分布值196
8.3 Transformer198
8.3.1 Transformer的顶层设计198
8.3.2 编码器与解码器的输入200
8.3.3 自注意力200
8.3.4 多头注意力203
8.3.5 自注意力与循环神经网络、
卷积神经网络的异同204
8.3.6 加深Transformer网络层的
几种方法205
8.3.7 如何进行自监督学习205
8.3.8 Vision Transformer207
8.3.9 Swin Transformer208
8.4 使用PyTorch实现Transformer213
8.4.1 Transformer背景介绍214
8.4.2 构建EncoderDecoder214
8.4.3 构建编码器215
8.4.4 构建解码器218
8.4.5 构建多头注意力219
8.4.6 构建前馈神经网络层221
8.4.7 预处理输入数据222
8.4.8 构建完整网络224
8.4.9 训练模型225
8.4.10 实现一个简单实例228
8.5 小结230
第9章 目标检测与语义分割231
9.1 目标检测及主要挑战231
9.1.1 边界框的表示232
9.1.2 手工标注图像的真实值233
9.1.3 主要挑战236
9.1.4 选择性搜索236
9.1.5 锚框237
9.1.6 RPN239
9.2 优化候选框的几种算法240
9.2.1 交并比240
9.2.2 非极大值抑制240
9.2.3 边框回归241
9.2.4 SPP-Net243
9.3 典型的目标检测算法244
9.3.1 R-CNN244
9.3.2 Fast R-CNN245
9.3.3 Faster R-CNN245
9.3.4 Mask R-CNN246
9.3.5 YOLO247
9.3.6 各种算法的性能比较248
9.4 语义分割249
9.5 小结250
第10章 生成式深度学习251
10.1 用变分自编码器生成图像251
10.1.1 自编码器251
10.1.2 变分自编码器252
10.1.3 用变分自编码器生成图像实例253
10.2 GAN简介256
10.2.1 GAN的架构256
10.2.2 GAN的损失函数257
10.3 用GAN生成图像257
10.3.1 构建判别器258
10.3.2 构建生成器258
10.3.3 训练模型258
10.3.4 可视化结果259
10.4 VAE与GAN的异同260
10.5 CGAN260
10.5.1 CGAN的架构261
10.5.2 CGAN的生成器261
10.5.3 CGAN的判别器262
10.5.4 CGAN的损失函数262
10.5.5 CGAN的可视化262
10.5.6 查看指定标签的数据263
10.5.7 可视化损失值263
10.6 DCGAN264
10.7 提升GAN训练效果的技巧265
10.8 小结266
第三部分 深度学习实战
第11章 人脸检测与识别实例268
11.1 人脸检测与识别的一般流程268
11.2 人脸检测269
11.2.1 目标检测269
11.2.2 人脸定位269
11.2.3 人脸对齐270
11.2.4 MTCNN算法270
11.3 特征提取与人脸识别271
11.4 使用PyTorch实现人脸检测与识别276
11.4.1 验证检测代码277
11.4.2 检测图像277
11.4.3 检测后进行预处理278
11.4.4 查看检测后的图像278
11.4.5 人脸识别279
11.5 小结279
第12章 迁移学习实例280
12.1 迁移学习简介280
12.2 特征提取281
12.2.1 PyTorch提供的预处理模块282
12.2.2 特征提取实例283
12.3 数据增强285
12.3.1 按比例缩放286
12.3.2 裁剪286
12.3.3 翻转287
12.3.4 改变颜色287
12.3.5 组合多种增强方法287
12.4 微调实例288
12.4.1 数据预处理288
12.4.2 加载预训练模型289
12.4.3 修改分类器289
12.4.4 选择损失函数及优化器289
12.4.5 训练及验证模型290
12.5 清除图像中的雾霾290
12.6 小结293
第13章 神经网络机器翻译实例294
13.1 使用PyTorch实现带注意力的
解码器294
13.1.1 构建编码器294
13.1.2 构建解码器295
13.1.3 构建带注意力的解码器295
13.2 使用注意力机制实现中英文互译297
13.2.1 导入需要的模块297
13.2.2 数据预处理298
13.2.3 构建模型300
13.2.4 训练模型302
13.2.5 测试模型303
13.2.6 可视化注意力304
13.3 小结305
第14章 使用ViT进行图像分类306
14.1 项目概述306
14.2 数据预处理306
14.3 生成输入数据308
14.4 构建编码器模型310
14.5 训练模型313
14.6 小结314
第15章 语义分割实例315
15.1 数据概览315
15.2 数据预处理316
15.3 构建模型319
15.4 训练模型322
15.5 测试模型325
15.6 保存与恢复模型326
15.7 小结326
第16章 生成模型实例327
16.1 Deep Dream模型327
16.1.1 Deep Dream原理327
16.1.2 Deep Dream算法的流程328
16.1.3 使用PyTorch实现
Deep Dream329
16.2 风格迁移331
16.2.1 内容损失332
16.2.2 风格损失333
16.2.3 使用PyTorch实现神经
网络风格迁移335
16.3 使用PyTorch实现图像修复339
16.3.1 网络结构339
16.3.2 损失函数340
16.3.3 图像修复实例340
16.4 使用PyTorch实现DiscoGAN342
16.4.1 DiscoGAN架构343
16.4.2 损失函数344
16.4.3 DiscoGAN实现345
16.4.4 使用PyTorch实现
DiscoGAN实例346
16.5 小结348
第17章 AI新方向:对抗攻击349
17.1 对抗攻击简介349
17.1.1 白盒攻击与黑盒攻击350
17.1.2 无目标攻击与有目标攻击350
17.2 常见对抗样本生成方式350
17.2.1 快速梯度符号算法351
17.2.2 快速梯度算法351
17.3 使用PyTorch实现对抗攻击351
17.3.1 实现无目标攻击351
17.3.2 实现有目标攻击354
17.4 对抗攻击和防御方法355
17.4.1 对抗攻击355
17.4.2 常见防御方法分类355
17.5 小结356
第18章 强化学习357
18.1 强化学习简介357
18.2 Q-Learning算法原理359
18.2.1 Q-Learning算法的主要流程359
18.2.2 Q函数360
18.2.3 贪婪策略360
18.3 使用PyTorch实现Q-Learning算法361
18.3.1 定义Q-Learning主函数361
18.3.2 运行Q-Learning算法362
18.4 SARSA 算法362
18.4.1 SARSA算法的主要步骤362
18.4.2 使用PyTorch实现SARSA
算法363
18.5 小结364
第19章 深度强化学习365
19.1 DQN算法原理365
19.1.1 Q-Learning方法的局限性366
19.1.2 用深度学习处理强化学习
需要解决的问题366
19.1.3 用DQN算法解决问题366
19.1.4 定义损失函数366
19.1.5 DQN的经验回放机制367
19.1.6 目标网络367
19.1.7 网络模型367
19.1.8 DQN算法实现流程367
19.2 使用PyTorch实现 DQN算法368
19.3 小结371
附录A PyTorch 0.4版本变更372
附录B AI在各行业的应用377
附录C einops及einsum简介383
《Python深度学习:基于TensorFlow 第2版 》
目 录
第2版前言
第1版前言
部分 TensorFlow基础
第1章 NumPy基础 2
1.1 把图像数字化 3
1.1.1 数组属性 4
1.1.2 从已有数据中生成数组 4
1.1.3 利用 random 模块生成
数组 5
1.1.4 利用 arange、linspace
函数生成数组 7
1.2 存取元素 8
1.3 NumPy的算术运算 9
1.3.1 对应元素相乘 10
1.3.2 点积运算 11
1.4 数据变形 12
1.4.1 更改数组的形状 12
1.4.2 合并数组 15
1.5 通用函数 18
1.6 广播机制 20
1.7 用NumPy实现回归实例 21
1.8 小结 24
第2章 TensorFlow基础知识 25
2.1 安装配置 25
2.1.1 安装Anaconda 26
2.1.2 安装TensorFlow
CPU版 26
2.1.3 安装TensorFlow
GPU版 27
2.2 层次架构 29
2.3 张量 30
2.3.1 张量的基本属性 30
2.3.2 张量切片 31
2.3.3 操作形状 32
2.4 变量 33
2.5 NumPy与tf.Tensor比较 35
2.6 计算图 36
2.6.1 静态计算图 36
2.6.2 动态计算图 37
2.7 自动图 38
2.8 自动微分 39
2.9 损失函数 42
2.10 优化器 43
2.11 使用TensorFlow 2.0实现回归
实例 43
2.12 GPU加速 48
2.13 小结 50
第3章 TensorFlow构建模型的方法 51
3.1 利用低阶API构建模型 51
3.1.1 项目背景 51
3.1.2 导入数据 52
3.1.3 预处理数据 53
3.1.4 构建模型 55
3.1.5 训练模型 56
3.1.6 测试模型 57
3.1.7 保存恢复模型 57
3.2 利用中阶API构建模型 58
3.2.1 构建模型 58
3.2.2 创建损失评估函数 59
3.2.3 训练模型 59
3.3 利用高阶API构建模型 61
3.3.1 构建模型 61
3.3.2 编译及训练模型 63
3.3.3 测试模型 64
3.3.4 保存恢复模型 64
3.4 小结 65
第4章 TensorFlow数据处理 66
4.1 tf.data简介 66
4.2 构建数据集的常用方法 67
4.2.1 从内存中读取数据 68
4.2.2 从文本中读取数据 68
4.2.3 读取TFRecord格式
文件 70
4.3 如何生成自己的TFRecord格式
数据 70
4.3.1 把数据转换为TFRecord
格式的一般步骤 70
4.3.2 加载TFRecord文件
流程 72
4.3.3 代码实现 72
4.4 数据增强方法 75
4.4.1 常用的数据增强方法 75
4.4.2 创建数据处理流水线 77
4.5 小结 78
第5章 可视化 79
5.1 matplotlib 79
5.1.1 matplotlib的基本概念 79
5.1.2 使用matplotlib绘制
图表 81
5.1.3 使用rcParams 83
5.2 pyecharts 85
5.2.1 pyecharts的安装 85
5.2.2 使用pyecharts绘制
图表 86
5.3 TensorBoard 89
5.4 小结 92
第二部分 深度学习基础
第6章 机器学习基础 94
6.1 机器学习的一般流程 94
6.1.1 明确目标 94
6.1.2 收集数据 95
6.1.3 数据探索与预处理 95
6.1.4 模型选择 96
6.1.5 模型评估 96
6.2 监督学习 98
6.2.1 线性回归 98
6.2.2 逻辑回归 100
6.2.3 树回归 102
6.2.4 支持向量机 102
6.2.5 朴素贝叶斯分类器 105
6.2.6 集成学习 107
6.3 无监督学习 110
6.3.1 主成分分析 110
6.3.2 k均值算法 110
6.4 数据预处理 111
6.4.1 处理缺失值 111
6.4.2 处理分类数据 112
6.5 机器学习实例 113
6.6 小结 119
第7章 神经网络基础 120
7.1 单层神经网络 121
7.2 多层神经网络 122
7.2.1 多层神经网络的结构 122
7.2.2 各层之间的信息传输 123
7.2.3 使用多层神经网络解决
XOR问题 123
7.2.4 使用TensorFlow解决XOR问题 125
7.3 激活函数 126
7.3.1 sigmoid函数 127
7.3.2 softmax函数 127
7.3.3 tanh函数 128
7.3.4 ReLU函数 129
7.3.5 Leaky-ReLU函数 129
7.3.6 softplus函数 130
7.3.7 Dropout函数 130
7.4 正向和反向传播算法 130
7.4.1 单个神经元的BP算法 131
7.4.2 多层神经网络的BP
算法 132
7.5 解决过拟合问题 135
7.5.1 权重正则化 135
7.5.2 Dropout正则化 136
7.5.3 批量正则化 138
7.5.4 权重初始化 139
7.5.5 残差网络 140
7.6 选择优化算法 141
7.6.1 传统梯度更新算法 141
7.6.2 动量算法 142
7.6.3 NAG算法 144
7.6.4 AdaGrad算法 145
7.6.5 RMSProp算法 146
7.6.6 Adam算法 146
7.6.7 如何选择优化算法 147
7.7 使用tf.keras构建神经网络 148
7.7.1 tf.keras概述 148
7.7.2 tf.keras的常用模块 148
7.7.3 构建模型的几种方法 149
7.7.4 使用Sequential API
构建神经网络实例 150
7.7.5 使用Functional API
构建神经网络实例 156
7.7.6 使用Subclassing API
构建神经网络实例 157
7.8 小结 158
第8章 视觉处理基础 159
8.1 从全连接层到卷积层 159
8.1.1 图像的两个特性 160
8.1.2 卷积神经网络概述 161
8.2 卷积层 162
8.2.1 卷积核 163
8.2.2 步幅 165
8.2.3 填充 166
8.2.4 多通道上的卷积 166
8.2.5 激活函数 168
8.2.6 卷积函数 168
8.2.7 转置卷积 169
8.2.8 特征图与感受野 171
8.2.9 全卷积网络 171
8.3 池化层 172
8.3.1 局部池化 173
8.3.2 全局池化 174
8.4 现代经典网络 175
8.4.1 LeNet-5模型 175
8.4.2 AlexNet模型 176
8.4.3 VGG模型 177
8.4.4 GoogLeNet模型 178
8.4.5 ResNet模型 179
8.4.6 DenseNet模型 179
8.5 卷积神经网络分类实例 181
8.5.1 使用Subclassing API
构建网络 181
8.5.2 卷积神经网络分类实例的
主要步骤 181
8.5.3 通过数据增强提升
性能 184
8.5.4 通过现代网络架构提升
网络性能 185
8.6 小结 187
第9章 自然语言处理基础 188
9.1 从语言模型到循环神经网络 188
9.1.1 链式法则 189
9.1.2 马尔可夫假设与N元
语法模型 189
9.1.3 从N元语法模型到隐含
状态表示 189
9.1.4 从神经网络到有隐含
状态的循环神经网络 190
9.1.5 使用循环神经网络构建
语言模型 192
9.1.6 多层循环神经网络 192
9.2 正向传播与随时间反向传播 193
9.3 现代循环神经网络 196
9.3.1 LSTM 196
9.3.2 GRU 197
9.3.3 Bi-RNN 197
9.4 几种特殊架构 198
9.4.1 编码器?-?解码器架构 198
9.4.2 Seq2Seq架构 200
9.5 循环神经网络的应用场景 201
9.6 循环神经网络实践 202
9.6.1 使用LSTM实现文本
分类 202
9.6.2 把CNN和RNN组合
在一起 203
9.7 小结 206
第10章 注意力机制 207
10.1 注意力机制概述 207
10.1.1 两种常见注意力
机制 208
10.1.2 来自生活的注意力 208
10.1.3 注意力机制的本质 208
10.2 带注意力机制的编码器?-?解码器架构 210
10.2.1 引入注意力机制 211
10.2.2 计算注意力分配值 212
10.3 可视化Transformer架构 215
10.3.1 Transformer的顶层
设计 215
10.3.2 编码器与解码器的
输入 216
10.3.3 自注意力 217
10.3.4 多头注意力 220
10.3.5 自注意力与卷积神经
网络、循环神经网络的
异同 222
10.3.6 为加深Transformer
网络层保驾护航的几种
方法 223
10.3.7 如何进行自监督
学习 224
10.3.8 Transformer在视觉
领域的应用 225
10.4 使用TensorFlow实现
Transformer 227
10.4.1 Transformer
架构图 227
10.4.2 架构说明 227
10.4.3 构建缩放的点积注意力
模块 228
10.4.4 构建多头注意力
模块 229
10.4.5 构建前馈神经网络
模块 230
10.4.6 构建EncoderLayer
模块 230
10.4.7 构建Encoder模块 231
10.4.8 构建DecoderLayer
模块 232
10.4.9 构建Decoder模块 233
10.4.10 构建Transformer
模型 234
10.4.11 定义掩码函数 235
10.5 小结 238
第11章 目标检测 239
11.1 目标检测及主要挑战 239
11.1.1 边界框的表示 240
11.1.2 手工标注图像的
真实值 241
11.1.3 主要挑战 244
11.1.4 选择性搜索 245
11.1.5 锚框 245
11.1.6 RPN算法 247
11.2 优化候选框的算法 248
11.2.1 交并比 248
11.2.2 非极大值抑制 248
11.2.3 边框回归 249
11.2.4 使候选框输出为固定
大小 251
11.3 典型的目标检测算法 253
11.3.1 R-CNN 253
11.3.2 Fast R-CNN 254
11.3.3 Faster R-CNN 255
11.3.4 Mask R-CNN 256
11.3.5 YOLO 257
11.3.6 Swin Transformer 257
11.3.7 各种算法的性能
比较 258
11.4 小结 258
第12章 生成式深度学习 259
12.1 用变分自编码器生成图像 259
12.1.1 自编码器 259
12.1.2 变分自编码器 260
12.1.3 用变分自编码器生成
图像实例 261
12.2 GAN简介 263
12.2.1 GAN的架构 264
12.2.2 GAN的损失函数 265
12.3 用GAN生成图像 266
12.3.1 判别器 266
12.3.2 生成器 266
12.3.3 训练模型 267
12.3.4 可视化结果 267
12.4 VAE与GAN的异同 267
12.5 CGAN 268
12.5.1 CGAN的架构 268
12.5.2 CGAN 判别器 269
12.5.3 CGAN生成器 269
12.5.4 训练模型 270
12.5.5 动态查看指定标签的
图像 270
12.6 提升GAN训练效果的一些
技巧 270
12.7 小结 271
第三部分 深度学习实践
第13章 实战生成式模型 274
13.1 Deep Dream模型 274
13.1.1 Deep Dream的
原理 274
13.1.2 Deep Dream算法的
流程 275
13.1.3 使用TensorFlow实现Deep Dream 275
13.2 风格迁移 277
13.2.1 内容损失 278
13.2.2 风格损失 279
13.2.3 训练模型 281
13.3 小结 282
第14章 目标检测实例 283
14.1 数据集简介 283
14.2 准备数据 284
14.3 训练模型 286
14.4 测试模型 292
14.5 小结 293
第15章 人脸检测与识别实例 294
15.1 人脸识别简介 294
15.2 项目概况 297
15.3 项目详细实施步骤 297
15.3.1 图像预处理 298
15.3.2 构建模型 299
15.3.3 测试模型 300
15.4 小结 302
第16章 文本检测与识别实例 303
16.1 项目架构说明 303
16.2 项目实施步骤 304
16.2.1 手工生成训练数据 304
16.2.2 数据预处理 306
16.2.3 构建模型 308
16.2.4 训练模型 309
16.3 小结 311
第17章 基于Transformer的
对话实例 312
17.1 数据预处理 312
17.2 构建注意力模块 315
17.3 构建Transformer架构 316
17.4 定义损失函数 320
17.5 初始化并编译模型 321
17.6 测试评估模型 321
17.7 小结 322
第18章 基于Transformer的
图像处理实例 323
18.1 导入数据 323
18.2 预处理数据 324
18.3 构建模型 326
18.4 编译、训练模型 329
18.5 可视化运行结果 330
18.6 小结 331
第四部分 强化学习
第19章 强化学习基础 334
19.1 强化学习基础概述 334
19.1.1 智能体与环境的
交互 335
19.1.2 回报 335
19.1.3 马尔可夫决策过程 336
19.1.4 贝尔曼方程 336
19.1.5 贝尔曼方程 337
19.1.6 同步策略与异步
策略 337
19.1.7 有模型训练与无模型
训练 337
19.2 时序差分算法 338
19.3 Q-Learning算法 338
19.3.1 Q-Learning算法的
主要流程 339
19.3.2 Q函数 339
19.3.3 贪婪策略 340
19.4 SARSA 算法 340
19.5 DQN算法 340
19.5.1 Q-Learning算法的
局限性 341
19.5.2 用深度学习处理强化学习时需要解决的问题 341
19.5.3 用DQN解决问题的
方法 341
19.5.4 定义损失函数 342
19.5.5 DQN的经验回放
机制 342
19.5.6 目标网络 342
19.5.7 网络模型 342
19.5.8 DQN算法的实现 343
19.6 小结 344
第20章 强化学习实践 345
20.1 Q-Learning算法实例 345
20.2 SARSA算法实例 346
20.2.1 游戏场景 346
20.2.2 核心代码说明 347
20.3 用TensorFlow实现DQN算法 348
20.4 小结 352
附录A TensorFlow-GPU 2
升级安装配置 353
附录B 从TensorFlow1.x升级到TensorFlow 2.x 360
|
|