本书从介绍深度学习和重要入门知识入手,通过范例讲解TensorFlow的应用开发。本书文字清晰、严谨,并辅以简洁明了的插图说明,同时提供步骤细致的范例程序教学,让读者可以轻松理解并掌握深度学习原理和TensorFlow开发方法。
本书分为12章,内容包括:环境安装、TensorFlow 2.0介绍、回归问题、二分类问题、多分类问题、神经网络训练技巧、TensorFlow 2.0技巧、TensorBoard技巧、卷积神经网络经典架构、迁移学习、变分自编码器和生成式对抗网络。
本书适合TensorFlow深度学习自学者、深度学习开发人员、人工智能行业咨询顾问等阅读,也适合作为高等院校和培训学校人工智能及其相关师生的教学参考书。
目 录
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 tebook 9
1.4.1 Windows安装方法 9
1.4.2 Ubuntu安装方法 10
1.4.3 设置并建立项目 10
1.4.4 常用快捷键 11
1.4.5 Jupyter tebook作练习 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 Eecution 21
2.5.1 Eager Eecution介绍 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 Softma 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 KerasAPI与自定义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.tet 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 AleNet 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
^_^:afcc41361249ff58e8caf87aa940986a