目 录
第1章 环境安装 1
1.1 Python安装 1
1.1.1 Windows安装方法 1
1.1.2 Ubuntu安装方法 2
1.2 TensorFlow安装 2
1.2.1 Windows安装方法 2
1.2.2 Ubuntu安装方法 5
1.3 Python 扩充套件安装 8
1.4 Jupyter Notebook 9
1.4.1 Windows安装方法 9
1.4.2 Ubuntu安装方法 10
1.4.3 设置并建立项目 10
1.4.4 常用快捷键 11
1.4.5 Jupyter Notebook操作练习 11
1.5 本书的范例程序 13
1.5.1 在Windows中打开项目 14
1.5.2 在Ubuntu中打开项目 14
第2章 TensorFlow 2.0介绍 16
2.1 什么是深度学习 16
2.2 建立项目 17
2.3 TensorFlow介绍 18
2.4 TensorFlow 2.0的变化 20
2.5 Eager Execution 21
2.5.1 Eager Execution介绍 21
2.5.2 TensorFlow基本运算 22
2.6 Keras 24
2.6.1 Keras介绍 24
2.6.2 序贯模型 26
2.6.3 Functional API 28
2.7 tf.data 32
2.7.1 tf.data介绍 32
2.7.2 基本操作 34
第3章 回归问题 39
3.1 深度神经网络 39
3.1.1 神经网络简史 39
3.1.2 神经网络原理 40
3.1.3 全连接 41
3.1.4 损失函数MSE 和MAE 41
3.1.5 神经网络权重更新 43
3.1.6 神经网络训练步骤 44
3.2 Kaggle介绍 46
3.3 实验一:房价预测模型 47
3.3.1 数据集介绍 47
3.3.2 新建项目 48
3.3.3 程序代码 49
3.4 TensorBoard 介绍 56
3.5 实验二:过拟合问题 58
3.5.1 过拟合说明 58
3.5.2 程序代码 60
3.5.3 TensorBoard 数据分析 64
3.6 参考文献 65
第4章 二分类问题 67
4.1 机器学习的四大类别 67
4.2 二分类问题介绍 69
4.2.1 逻辑回归 69
4.2.2 Sigmoid 69
4.2.3 二分类交叉熵 69
4.2.4 独热编码 71
4.3 实验:精灵宝可梦对战预测 72
4.3.1 数据集介绍 72
4.3.2 新建项目 75
4.3.3 程序代码 76
4.4 参考文献 91
第5章 多分类问题 94
5.1 卷积神经网络 94
5.1.1 卷积神经网络简介 94
5.1.2 卷积神经网络架构 95
5.1.3 卷积神经网络的原理 102
5.2 多分类问题介绍 105
5.2.1 Softmax 105
5.2.2 多分类交叉熵 106
5.2.3 数据增强 107
5.3 实验:CIFAR-10图像识别 108
5.3.1 数据集介绍 108
5.3.2 TensorFlow Datasets 109
5.3.3 新建项目 110
5.3.4 程序代码 111
5.4 参考文献 127
第6章 神经网络训练技巧 129
6.1 反向传播 129
6.2 权重初始化 133
6.2.1 正态分布 133
6.2.2 Xavier/Glorot 初始化 135
6.2.3 He初始化 137
6.3 批量归一化 139
6.3.1 批量归一化介绍 139
6.3.2 批量归一化网络架构 140
6.4 实验一:使用CIFAR-10数据集实验 3种权重初始化方法 141
6.4.1 新建项目 141
6.4.2 建立图像增强函数 142
6.4.3 程序代码 144
6.4.4 TensorBoard可视化权重分布 148
6.5 实验二:使用CIFAR-10数据集实验 批量归一化方法 151
6.6 总结各种网络架构的性能比较 154
6.7 参考文献 155
第7章 TensorFlow 2.0高级技巧 157
7.1 TensorFlow高级技巧 157
7.1.1 自定义网络层 158
7.1.2 自定义损失函数 159
7.1.3 自定义评价指标函数 159
7.1.4 自定义回调函数 160
7.2 Keras高级API与自定义API比较 161
7.2.1 网络层 161
7.2.2 损失函数 162
7.2.3 评价指标函数 163
7.2.4 回调函数 165
7.3 实验:比较Keras 高级API和 自定义API两种网络训练的结果 166
7.3.1 新建项目 166
7.3.2 程序代码 167
第8章 TensorBoard高级技巧 176
8.1 TensorBoard的高级技巧 176
8.1.1 tf.summary 177
8.1.2 tf.summary.scalar 177
8.1.3 tf.summary.image 179
8.1.4 tf.summary.text 181
8.1.5 tf.summary.audio 182
8.1.6 tf.summary.histogram 183
8.2 实验一:使用tf.summary.image记录训练结果 186
8.2.1 新建项目 186
8.2.2 程序代码 187
8.3 实验二:使用TensorBoard超参数调校工具来 训练多个网络模型 195
8.3.1 启动TensorBoard(命令行) 196
8.3.2 程序代码 197
第9章 卷积神经网络经典架构 205
9.1 神经网络架构 205
9.1.1 LeNet 205
9.1.2 AlexNet 206
9.1.3 VGG 206
9.1.4 GoogLeNet 207
9.1.5 ResNet 210
9.1.6 总结各种网络架构的比较 211
9.2 实验:实现Inception V3网络架构 212
9.2.1 新建项目 213
9.2.2 Keras Applications 214
9.2.3 TensorFlow Hub 217
9.3 参考文献 222
第10章 迁移学习 224
10.1 认识迁移学习 224
10.1.1 迁移学习介绍 224
10.1.2 迁移学习训练技巧 225
10.2 实验:迁移学习范例 230
10.2.1 新建项目 230
10.2.2 数据集介绍 231
10.2.3 程序代码 231
10.3 参考文献 237
第11章 变分自编码器 239
11.1 自编码器介绍 239
11.2 变分自编码器介绍 241
11.3 变分自解码器的损失函数 243
11.4 实验:变分自编码器程序代码的实现 244
11.4.1 建立项目 245
11.4.2 数据集介绍 247
11.4.3 变分自编码器项目说明 248
11.4.4 变分自编码器训练和生成图像 254
11.5 参考文献 257
第12章 生成式对抗网络 258
12.1 认识生成式对抗网络 258
12.1.1 生成式对抗网络介绍 258
12.1.2 生成式对抗网络训练及损失函数 260
12.2 GAN、WGAN、WGAN-GP的演进 262
12.2.1 生成式对抗网络的问题 262
12.2.2 Wasserstein距离介绍 264
12.2.3 WGAN-GP 损失函数 266
12.3 实验:WGAN-GP程序代码的实现 268
12.3.1 建立项目 269
12.3.2 数据集介绍 271
12.3.3 WGAN-GP 项目说明 272
12.4 参考文献 281