《TensorFlow2实战》首先讲解深度学习和TensorFlow2的基础知识,然后通过图像处理和自然语言处理两方面的实例,帮助读者进一步掌握深度学习的应用,最后通过对生成对抗网络和强化学习知识的讲解,带领读者精通深度学习。
《TensorFlow2实战》适合想要学习和了解人工智能、深度学习技术的程序员阅读,也可作为大专院校计算机专业师生的学习用书和培训学校的教材。
用简洁易懂的例子,循序渐进帮助读者学懂 TensorFlow 2
通过图像处理和自然语言处理两类实例,帮助读者掌握深度学习的应用
阐述对抗神经网络和强化学习的知识,使读者进阶深度学习
艾力,曾就职于暴风大脑研究院,担任 NLP 架构师一职。负责暴风大脑 NLP 引擎的设计和开发。Github 上开源了其极简 NLP 框架 Kashgari,帮助大家把最新的 NLP 论文落地到生产环境。
目录
第1章 环境配置 1
1.1 云Notebook环境简介 1
1.2 本地Notebook环境准备 1
1.2.1 搭建Python环境 2
1.2.2 创建虚拟环境 2
1.2.3 安装JupyterLab 3
1.3 安装TensorFlow 6
1.4 本书的代码规范 7
本章小结 8
第2章 常见工具介绍 9
2.1 NumPy 9
2.1.1 创建数组 10
2.1.2 数组索引 11
2.1.3 数组切片 11
2.1.4 数学计算 12
2.1.5 神经网络的数据表示 13
2.2 Pandas 14
2.2.1 读取数据 14
2.2.2 探索数据 15
2.2.3 过滤数据 16
2.2.4 应用方法 17
2.2.5 重构数据 17
2.2.6 保存数据 18
2.3 Matplotlib 18
2.3.1 简单的图形 19
2.3.2 子图 20
2.3.3 直方图 21
2.3.4 标题、标签和图例 21
2.3.5 三维图形 22
2.3.6 结合Pandas使用 23
本章小结 24
第3章 从零开始搭建神经网络 25
3.1 构建神经元 26
3.2 搭建神经网络 28
3.3 前向传播例子 28
3.4 训练神经网络 30
3.4.1 损失 31
3.4.2 损失计算实例 31
3.5 优化神经网络 32
3.6 随机梯度下降 35
3.7 完整的代码实现 36
本章小结 41
第4章 深度学习基础 42
4.1 基础概念 42
4.1.1 神经元 42
4.1.2 神经网络 44
4.1.3 损失函数 45
4.1.4 神经网络训练 45
4.1.5 深度学习的主要术语 46
4.1.6 深度学习的4个分支 48
4.2 评估深度学习模型 49
4.2.1 简单的留出验证 49
4.2.2 K折交叉验证 50
4.2.3 随机重复K折交叉验证 50
4.2.4 模型评估的注意事项 50
4.3 过拟合和欠拟合 51
4.3.1 减小神经网络模型的大小 51
4.3.2 添加权重正则化 52
4.3.3 添加Dropout正则化 52
本章小结 52
第5章 泰坦尼克号幸存者预测 53
5.1 处理数据集 53
5.2 定义模型 57
5.3 编译模型 57
5.4 训练模型 59
5.5 评估模型 60
5.6 预测 63
5.7 代码汇总 64
本章小结 66
第6章 TensorFlow 2介绍 67
6.1 TensorFlow 2基础知识和学习路线图 67
6.1.1 基础知识 67
6.1.2 学习路线图 69
6.2 模型的保存和恢复 70
6.2.1 全模型保存 70
6.2.2 保存为SavedModel格式 71
6.2.3 仅保存模型结构 71
6.2.4 仅保存模型权重 72
6.3 模型增量更新 72
6.4 训练回调 72
6.4.1 模型检查点和提前终止 73
6.4.2 动态调整学习率 73
6.4.3 自定义回调函数 74
6.5 TensorBoard可视化 76
本章小结 78
第7章 图像识别入门 79
7.1 Fashion-MNIST数据集 79
7.1.1 数据集简介 79
7.1.2 数据集预处理 80
7.2 全连接神经网络 82
7.2.1 构建模型 83
7.2.2 编译模型 83
7.2.3 训练模型 84
7.2.4 评估模型 84
7.2.5 预测 84
7.2.6 代码小结 87
7.3 卷积神经网络 88
7.3.1 卷积神经网络的原理 88
7.3.2 卷积层和池化层 89
7.3.3 实现卷积神经网络 91
本章小结 92
第8章 图像识别进阶 93
8.1 数据集处理 93
8.1.1 准备数据集 93
8.1.2 数据集预处理 96
8.1.3 简单的卷积神经网络 97
8.1.4 数据增强 99
8.2 迁移学习 102
8.2.1 VGG16预训练模型 103
8.2.2 特征提取 105
8.2.3 微调模型 108
8.2.4 保存模型 110
8.3 TensorFlow Hub 111
本章小结 113
第9章 图像风格迁移 114
9.1 神经风格迁移的原理 114
9.1.1 内容损失 116
9.1.2 风格损失 117
9.2 实现神经风格迁移算法 117
本章小结 127
第10章 自然语言处理入门 128
10.1 分词 128
10.1.1 英文分词 128
10.1.2 中文分词 129
10.2 语言模型 131
10.2.1 独热编码 131
10.2.2 词嵌入 133
10.2.3 从文本到词嵌入 134
10.2.4 自然语言处理领域的迁移学习 137
10.3 循环神经网络 139
10.3.1 循环神经网络的 原理 139
10.3.2 使用NumPy实现RNN层前向传播 140
10.3.3 循环神经网络存在的问题 142
10.3.4 长短期记忆网络 143
本章小结 143
第11章 语音助手意图分类 144
11.1 数据集 144
11.1.1 加载数据集 145
11.1.2 数据预处理 146
11.2 双向长短期记忆网络 151
11.3 预训练词嵌入网络 152
11.4 保存和加载模型 155
本章小结 157
第12章 自然语言生成实战 158
12.1 利用语言模型写诗 158
12.1.1 语言模型的应用 158
12.1.2 采样策略 159
12.1.3 利用LSTM语言模型 写诗 159
12.2 Seq2Seq语言模型 167
12.2.1 编码器 167
12.2.2 解码器 168
12.3 利用Seq2Seq语言模型实现中英文翻译 168
12.3.1 tf.keras中的函数式模型 168
12.3.2 数据预处理 169
12.3.3 Seq2Seq翻译模型的训练 171
12.3.4 Seq2Seq翻译模型的预测 173
本章小结 176
第13章 中文实体识别实战 177
13.1 报纸实体识别 177
13.1.1 数据集 177
13.1.2 训练模型 181
13.1.3 评估序列标注 182
13.2 使用BERT进行迁移学习实体识别 183
13.2.1 在tf.keras中加载BERT模型 184
13.2.2 构建迁移模型 186
本章小结 188
第14章 生成对抗网络 189
14.1 生成对抗网络的原理 189
14.2 搭建生成对抗网络 190
14.2.1 生成器 190
14.2.2 判别器 191
14.2.3 完成生成对抗网络的 搭建 191
14.3 训练生成对抗网络 192
14.4 辅助类别生成对抗网络 196
14.5 GAN的评估 201
14.5.1 Inception Score 202
14.5.2 Fréchet Inception 距离 203
本章小结 205
第15章 强化学习 206
15.1 强化学习概述 206
15.1.1 基础内容 206
15.1.2 Gym框架简介 208
15.1.3 随机动作策略 210
15.2 Q-Learning 212
15.2.1 Q-Learning简介 212
15.2.2 Q-Learning的实现 213
15.3 Deep Q-Learning 216
15.3.1 Lunar Lander v2 216
15.3.2 随机动作Agent 217
15.3.3 DQN的训练 219
本章小结 225
第16章 部署模型 226
16.1 使用Flask部署 226
16.1.1 Flask入门 226
16.1.2 利用Flask部署图像分类模型 227
16.2 TensorFlow Serving 229
16.2.1 使用命令行工具部署 230
16.2.2 使用Docker部署 231
16.2.3 调用REST接口 232
16.2.4 版本控制 233
本章小结 234