书籍详情
深度学习基础与工程实践
作者:郭泽文 著
出版社:电子工业出版社
出版时间:2021-09-01
ISBN:9787121419225
定价:¥89.00
购买这本书可以去
内容简介
本书以工程实践为主线,基于TensorFlow 2.0软件框架详细介绍了深度学习的工作原理和方法,并以实际代码为例,剖析了构建神经网络模型的流程、全连接网络的运行原理、卷积神经网络的结构与运行机制、循环神经网络的结构与运行机制,讨论了使用Dense、Conv1D、Conv2D、SimpleRNN、LTSM、GRU、Bidirectional等深度学习模型解决计算机视觉、序列问题的方法,并在此基础上基于具体示例介绍了深度学习的高阶实践。 本书致力于为人工智能算法工程师及从事人工智能引擎相关工作的人提供理论与实践指导,适合对人工智能及其应用感兴趣的读者阅读。
作者简介
郭泽文,香港理工大学软件科技理学硕士,中国人工智能学会会员,香港理工大学北京校友会理事。在计算机行业工作近30年,长期从事产品研发与项目管理工作,曾就职于北控、盛大等企业,目前是一家知名人工智能企业的合伙人,负责创新性产品的规划与研发,致力于深度学习领域的探索与产品化实践。
目录
第1章 搭建环境
1.1 安装Anaconda 2
1.2 安装CUDA及其加速器 3
1.3 安装TensorFlow 2.0 4
1.4 开发环境——Spyder 6
1.5 可视化分析工具——TensorBoard 7
第2章 机器学习与深度学习
2.1 机器学习 11
2.2 深度学习 13
第3章 构建神经网络模型
3.1 搭建一个全连接网络 17
3.2 确定要解决的问题 19
3.3 准备数据与数据预处理 20
3.3.1 数据集 22
3.3.2 拟合问题初探 23
3.3.3 数据集划分与数据污染 25
3.3.4 神经网络中的数据表示 26
3.3.5 张量操作 30
3.3.6 数据预处理 32
3.4 构建神经网络 34
3.4.1 构建神经网络的方法 34
3.4.2 理解Sequential Model的构建方法 35
3.4.3 理解layers与layer 37
3.4.4 理解models与model 39
3.4.5 理解Dense 39
3.4.6 激活函数 40
3.5 编译模型 42
3.5.1 优化器 43
3.5.2 损失函数 44
3.5.3 评价指标 46
3.6 训练模型 47
3.6.1 使用fit方法训练模型 47
3.6.2 使用fit_generator方法训练模型 51
3.6.3 使用TensorBoard回调函数训练模型 52
3.7 测试模型 59
3.7.1 性能评估 59
3.7.2 模型预测 60
3.8 保存模型 62
3.8.1 save方式 62
3.8.2 save_weights方式 63
3.8.3 SavedModel方式 64
3.9 使用模型 64
3.9.1 以save_weights方式保存的模型的加载方法 64
3.9.2 以save方式保存的模型的加载方法 65
3.9.3 以SavedModel方式保存的模型的加载方法 66
3.10 模型的重新训练与预测 66
3.11 使用模型在新数据上进行推理 69
第4章 全连接网络
4.1 全连接层 72
4.2 使用全连接网络解决文本分类问题 74
4.2.1 基于IMDB数据集的二分类任务 75
4.2.2 基于Reuters数据集的多分类任务 79
4.3 使用全连接网络解决标量回归问题 82
4.3.1 使用留出验证集方式训练模型 86
4.3.2 使用K折交叉验证方式训练模型 87
4.4 全连接网络图片分类问题的优化 88
4.4.1 降低模型容量:缩减模型的超参数 90
4.4.2 奥卡姆剃刀原则:正则化模型参数 91
4.4.3 初识随机失活:Dropout基础 92
第5章 卷积神经网络
5.1 使用CNN解决MNIST数据集的分类问题 96
5.2 全连接网络面临的问题 98
5.3 局部相关性与权值共享 100
5.4 构建卷积神经网络 102
5.4.1 CNN与Dense性能比较 102
5.4.2 卷积层 104
5.4.3 池化层 108
5.4.4 打平层 111
5.4.5 卷积神经网络基础架构 113
5.5 使用Conv1D解决二分类问题 115
5.5.1 EarlyStopping函数:训练终止 118
5.5.2 ModelCheckpoint函数:动态保存模型 120
5.5.3 再谈随机失活 122
第6章 循环神经网络
6.1 循环神经网络基础 126
6.1.1 序列 126
6.1.2 序列向量化 126
6.1.3 权值共享 130
6.1.4 全局语义 130
6.1.5 循环神经网络概述 131
6.1.6 循环层 132
6.2 SimpleRNN 133
6.2.1 序列数据的预处理 136
6.2.2 理解SimpleRNN层 137
6.3 LSTM网络 141
6.3.1 短时记忆与遗忘曲线 141
6.3.2 梯度问题 142
6.3.3 门控机制 143
6.3.4 理解LSTM层 144
6.4 GRU 151
6.4.1 LSTM网络面临的问题 151
6.4.2 门控机制的优化方法 152
6.4.3 理解GRU层 152
6.5 双向循环神经网络 159
6.5.1 双向LSTM网络 161
6.5.2 双向GRU 164
6.6 解决循环神经网络的拟合问题 167
6.6.1 通过正则化模型参数解决拟合问题 167
6.6.2 使用随机失活解决拟合问题 168
第7章 深度学习高阶实践
7.1 函数式API网络模型 173
7.1.1 如何实现层图共享 177
7.1.2 如何实现模型共享 180
7.1.3 如何实现模型组装与嵌套 183
7.1.4 如何实现多输入多输出模型 185
7.2 混合网络模型 189
7.3 基于Xception架构实现图片分类任务 191
7.3.1 Xception架构 191
7.3.2 使用image_dataset_from_directory函数构建数据集 194
7.3.3 数据增强技术 199
7.3.4 数据增强器的使用 201
7.3.5 二维深度分离卷积层:SeparableConv2D 202
7.3.6 数据标准化前置与中置 205
7.3.7 编译与训练模型 206
7.3.8 在新数据上进行推理 207
7.4 残差网络在CIFAR10数据集上的实践 208
7.4.1 CIFAR10数据集 208
7.4.2 深度残差网络:ResNet 209
7.4.3 基于ResNet构建多分类任务模型 211
7.5 GloVe预训练词嵌入实践 215
7.5.1 从原始文件构建训练集 216
7.5.2 解析并加载GloVe 220
7.5.3 在二分类模型中使用词嵌入矩阵 221
7.5.4 模型的编译与训练 222
7.5.5 构建测试集与模型评估 222
7.6 基于预训练网络VGG16完成图片分类任务 224
7.6.1 预训练网络 224
7.6.2 预训练网络之特征提取方法 225
7.6.3 预训练网络之微调模型方法 230
7.7 生成式深度学习实践 237
7.7.1 基于ResNet50的Deep Dream技术实践 238
7.7.2 基于VGG19网络的风格迁移实践 244
7.8 使用自定义回调函数监控模型的行为 253
7.8.1 将约束理论应用于模型调优 254
7.8.2 构建全局回调函数 255
7.8.3 构建epoch级的自定义回调函数 258
7.8.4 构建batch级的自定义回调函数 260
第8章 模型的工程封装与部署
8.1 深度学习模型的工程封装方法 263
8.2 使用Flask部署神经网络模型 264
8.2.1 Flask是什么 265
8.2.2 将模型部署成接口提供给第三方使用 267
8.2.3 深度学习模型与Web应用协同工作 270
8.3 基于TFX的部署实践 273
8.3.1 TensorFlow Serving服务模型 273
8.3.2 基于TensorFlow Serving与Docker部署深度学习模型 275
第9章 回顾与展望
9.1 神经网络的架构 281
9.2 构建神经网络模型的流程与实践 282
9.3 深度学习的局限性与展望 285
1.1 安装Anaconda 2
1.2 安装CUDA及其加速器 3
1.3 安装TensorFlow 2.0 4
1.4 开发环境——Spyder 6
1.5 可视化分析工具——TensorBoard 7
第2章 机器学习与深度学习
2.1 机器学习 11
2.2 深度学习 13
第3章 构建神经网络模型
3.1 搭建一个全连接网络 17
3.2 确定要解决的问题 19
3.3 准备数据与数据预处理 20
3.3.1 数据集 22
3.3.2 拟合问题初探 23
3.3.3 数据集划分与数据污染 25
3.3.4 神经网络中的数据表示 26
3.3.5 张量操作 30
3.3.6 数据预处理 32
3.4 构建神经网络 34
3.4.1 构建神经网络的方法 34
3.4.2 理解Sequential Model的构建方法 35
3.4.3 理解layers与layer 37
3.4.4 理解models与model 39
3.4.5 理解Dense 39
3.4.6 激活函数 40
3.5 编译模型 42
3.5.1 优化器 43
3.5.2 损失函数 44
3.5.3 评价指标 46
3.6 训练模型 47
3.6.1 使用fit方法训练模型 47
3.6.2 使用fit_generator方法训练模型 51
3.6.3 使用TensorBoard回调函数训练模型 52
3.7 测试模型 59
3.7.1 性能评估 59
3.7.2 模型预测 60
3.8 保存模型 62
3.8.1 save方式 62
3.8.2 save_weights方式 63
3.8.3 SavedModel方式 64
3.9 使用模型 64
3.9.1 以save_weights方式保存的模型的加载方法 64
3.9.2 以save方式保存的模型的加载方法 65
3.9.3 以SavedModel方式保存的模型的加载方法 66
3.10 模型的重新训练与预测 66
3.11 使用模型在新数据上进行推理 69
第4章 全连接网络
4.1 全连接层 72
4.2 使用全连接网络解决文本分类问题 74
4.2.1 基于IMDB数据集的二分类任务 75
4.2.2 基于Reuters数据集的多分类任务 79
4.3 使用全连接网络解决标量回归问题 82
4.3.1 使用留出验证集方式训练模型 86
4.3.2 使用K折交叉验证方式训练模型 87
4.4 全连接网络图片分类问题的优化 88
4.4.1 降低模型容量:缩减模型的超参数 90
4.4.2 奥卡姆剃刀原则:正则化模型参数 91
4.4.3 初识随机失活:Dropout基础 92
第5章 卷积神经网络
5.1 使用CNN解决MNIST数据集的分类问题 96
5.2 全连接网络面临的问题 98
5.3 局部相关性与权值共享 100
5.4 构建卷积神经网络 102
5.4.1 CNN与Dense性能比较 102
5.4.2 卷积层 104
5.4.3 池化层 108
5.4.4 打平层 111
5.4.5 卷积神经网络基础架构 113
5.5 使用Conv1D解决二分类问题 115
5.5.1 EarlyStopping函数:训练终止 118
5.5.2 ModelCheckpoint函数:动态保存模型 120
5.5.3 再谈随机失活 122
第6章 循环神经网络
6.1 循环神经网络基础 126
6.1.1 序列 126
6.1.2 序列向量化 126
6.1.3 权值共享 130
6.1.4 全局语义 130
6.1.5 循环神经网络概述 131
6.1.6 循环层 132
6.2 SimpleRNN 133
6.2.1 序列数据的预处理 136
6.2.2 理解SimpleRNN层 137
6.3 LSTM网络 141
6.3.1 短时记忆与遗忘曲线 141
6.3.2 梯度问题 142
6.3.3 门控机制 143
6.3.4 理解LSTM层 144
6.4 GRU 151
6.4.1 LSTM网络面临的问题 151
6.4.2 门控机制的优化方法 152
6.4.3 理解GRU层 152
6.5 双向循环神经网络 159
6.5.1 双向LSTM网络 161
6.5.2 双向GRU 164
6.6 解决循环神经网络的拟合问题 167
6.6.1 通过正则化模型参数解决拟合问题 167
6.6.2 使用随机失活解决拟合问题 168
第7章 深度学习高阶实践
7.1 函数式API网络模型 173
7.1.1 如何实现层图共享 177
7.1.2 如何实现模型共享 180
7.1.3 如何实现模型组装与嵌套 183
7.1.4 如何实现多输入多输出模型 185
7.2 混合网络模型 189
7.3 基于Xception架构实现图片分类任务 191
7.3.1 Xception架构 191
7.3.2 使用image_dataset_from_directory函数构建数据集 194
7.3.3 数据增强技术 199
7.3.4 数据增强器的使用 201
7.3.5 二维深度分离卷积层:SeparableConv2D 202
7.3.6 数据标准化前置与中置 205
7.3.7 编译与训练模型 206
7.3.8 在新数据上进行推理 207
7.4 残差网络在CIFAR10数据集上的实践 208
7.4.1 CIFAR10数据集 208
7.4.2 深度残差网络:ResNet 209
7.4.3 基于ResNet构建多分类任务模型 211
7.5 GloVe预训练词嵌入实践 215
7.5.1 从原始文件构建训练集 216
7.5.2 解析并加载GloVe 220
7.5.3 在二分类模型中使用词嵌入矩阵 221
7.5.4 模型的编译与训练 222
7.5.5 构建测试集与模型评估 222
7.6 基于预训练网络VGG16完成图片分类任务 224
7.6.1 预训练网络 224
7.6.2 预训练网络之特征提取方法 225
7.6.3 预训练网络之微调模型方法 230
7.7 生成式深度学习实践 237
7.7.1 基于ResNet50的Deep Dream技术实践 238
7.7.2 基于VGG19网络的风格迁移实践 244
7.8 使用自定义回调函数监控模型的行为 253
7.8.1 将约束理论应用于模型调优 254
7.8.2 构建全局回调函数 255
7.8.3 构建epoch级的自定义回调函数 258
7.8.4 构建batch级的自定义回调函数 260
第8章 模型的工程封装与部署
8.1 深度学习模型的工程封装方法 263
8.2 使用Flask部署神经网络模型 264
8.2.1 Flask是什么 265
8.2.2 将模型部署成接口提供给第三方使用 267
8.2.3 深度学习模型与Web应用协同工作 270
8.3 基于TFX的部署实践 273
8.3.1 TensorFlow Serving服务模型 273
8.3.2 基于TensorFlow Serving与Docker部署深度学习模型 275
第9章 回顾与展望
9.1 神经网络的架构 281
9.2 构建神经网络模型的流程与实践 282
9.3 深度学习的局限性与展望 285
猜您喜欢