图书目录

目   录

第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