第一篇 预测类项目实战 2
第1章 房价预测 2
1.1 数据准备 2
1.1.1 环境准备 2
1.1.2 预处理数据 3
1.1.3 数据可视化分析 5
1.2 基于scikit-learn实现房价预测 7
1.2.1 衡量R2值 7
1.2.2 模型性能对比 7
1.2.3 网格搜索模型 12
1.2.4 波士顿房价预测 13
1.2.5 北京房价预测 16
1.3 基于Keras实现房价预测 19
1.3.1 数据准备 19
1.3.2 创建神经网络模型 20
1.3.3 训练网络模型 21
1.3.4 可视化模型的结果 22
1.3.5 评估和预测模型 23
1.3.6 预测可视化显示 24
1.4 小结 26
第2章 泰坦尼克号生还预测 27
2.1 数据准备 27
2.1.1 环境准备 27
2.1.2 预处理数据 28
2.1.3 缺失值处理 29
2.1.4 数据清洗与分割 32
2.2 基于决策树模型预测 33
2.2.1 训练 33
2.2.2 预测 33
2.3 基于逻辑回归模型预测 34
2.3.1 训练 34
2.3.2 预测 35
2.4 基于梯度提升分类器模型预测 35
2.4.1 训练 35
2.4.2 预测 35
2.5 基于神经网络模型预测 36
2.5.1 训练 36
2.5.2 预测 36
2.5.3 绘制曲线图 37
2.6 基于Keras的神经网络模型预测 38
2.6.1 训练 38
2.6.2 预测 39
2.7 小结 40
第3章 共享单车使用情况预测 41
3.1 数据准备 41
3.1.1 环境准备 41
3.1.2 数据可视化 41
3.1.3 预处理数据 51
3.1.4 数据清洗与分割 52
3.2 基于TensorFlow的长短期记忆网络模型预测 52
3.2.1 处理序列 52
3.2.2 参数准备 53
3.2.3 创建LSTM模型 53
3.2.4 训练模型 54
3.2.5 模型预览与测试 56
3.2.6 对比预测值模型预览 58
3.3 小结 59
第4章 福彩3D中奖预测 60
4.1 数据准备 60
4.1.1 环境准备 60
4.1.2 数据准备 60
4.1.3 数据预处理 61
4.1.4 数据可视化 62
4.2 基于神经网络模型预测 68
4.2.1 决策树 69
4.2.2 多层感知器 69
4.2.3 时间序列基础 70
4.2.4 时间序列预测 73
4.2.5 根据中奖号码单变量单个位数预测 74
4.3 小结 76
第5章 股票走势预测 77
5.1 数据准备 77
5.1.1 环境准备 77
5.1.2 数据集说明 77
5.2 百度股票预测 78
5.2.1 数据准备 78
5.2.2 数据可视化 80
5.2.3 计算购买的股票收益 82
5.2.4 训练和评估模型 84
5.2.5 股票预测 87
5.2.6 股票买入策略 88
5.3 微软股票预测 89
5.3.1 数据准备 89
5.3.2 数据可视化 89
5.3.3 计算购买的股票收益 90
5.3.4 训练和评估模型 91
5.3.5 股票预测 92
5.3.6 股票买入策略 92
5.4 小结 93
第6章 垃圾邮件预测 94
6.1 数据准备 94
6.1.1 环境准备 94
6.1.2 数据准备 95
6.1.3 数据预处理 95
6.2 基于多项式朴素贝叶斯分类器的邮件分类 101
6.2.1 数据处理 101
6.2.2 创建和训练模型 102
6.2.3 测试模型 102
6.3 基于TensorFlow的神经网络模型的邮件分类 103
6.3.1 构建N-Gram向量化数据 103
6.3.2 创建模型 104
6.3.3 训练模型 104
6.3.4 可视化训练结果 106
6.4 小结 107
第7章 影评的情感分析 108
7.1 数据准备 108
7.1.1 环境准备 108
7.1.2 预处理数据 108
7.1.3 数据集编码 110
7.1.4 数据集分割 114
7.2 基于TensorFlow的长短期记忆网络实现影评的情感分析 115
7.2.1 参数准备 115
7.2.2 创建LSTM模型 116
7.2.3 训练模型 117
7.2.4 模型测试 119
7.3 基于Keras的长短期记忆网络实现影评的情感分析 119
7.3.1 数据预处理 119
7.3.2 创建模型 120
7.3.3 预览模型架构 120
7.3.4 训练模型 120
7.3.5 模型评估 121
7.4 小结 121
第8章 语言翻译 122
8.1 数据准备 122
8.1.1 环境准备 122
8.1.2 数据准备 122
8.1.3 数据预处理 123
8.2 基于Keras的长短期记忆网络实现语言翻译 126
8.2.1 Tokenize文本数据 126
8.2.2 数据编码和填充 127
8.2.3 创建模型 128
8.2.4 训练模型 129
8.2.5 测试模型 130
8.3 小结 132
第二篇 识别类项目实战 134
第9章 MNIST手写数字识别 134
9.1 MNIST数据集 134
9.1.1 简介 134
9.1.2 数据下载 135
9.1.3 可视化数据 136
9.2 基于多层感知器的TensorFlow实现MNIST识别 138
9.2.1 参数准备 138
9.2.2 创建模型 138
9.2.3 训练模型 139
9.2.4 模型预测 140
9.3 基于多层感知器的Keras实现MNIST识别 141
9.3.1 数据准备 141
9.3.2 创建模型 142
9.3.3 训练模型 143
9.3.4 模型预测 144
9.3.5 单个图像预测 144
9.4 基于卷积神经网络的TensorFlow实现MNIST识别 144
9.4.1 参数准备 145
9.4.2 创建模型 145
9.4.3 训练模型 146
9.4.4 模型预测 147
9.5 基于卷积神经网络的Keras实现MNIST识别 148
9.5.1 数据准备 148
9.5.2 创建模型 149
9.5.3 训练模型 150
9.5.4 模型预测 150
9.5.5 单个图像预测 151
9.6 小结 151
第10章 狗的品种识别 152
10.1 数据准备 152
10.1.1 环境准备 153
10.1.2 数据可视化 153
10.1.3 预处理数据 159
10.2 基于Keras的卷积神经网络模型预测 160
10.2.1 创建模型 160
10.2.2 训练模型 162
10.2.3 模型评估 162
10.3 基于Keras的InceptionV3预训练模型实现预测 163
10.3.1 模型函数声明 163
10.3.2 预测单张图片 164
10.4 基于TFHUB的Keras的迁移学习实现预测 166
10.4.1 数据集下载和准备 166
10.4.2 预训练模型下载 167
10.4.3 创建模型 168
10.4.4 训练模型 169
10.4.5 测试模型 171
10.4.6 模型预测单张图片 173
10.5 小结 175
第11章 人脸识别 176
11.1 数据准备 176
11.1.1 环境准备 177
11.1.2 数据下载和分析 177
11.1.3 人脸图片数据预览 178
11.2 基于FaceNet的人脸对齐和验证 181
11.2.1 下载和对齐图片 181
11.2.2 在LFW上验证 182
11.3 训练自己的人脸识别模型 183
11.3.1 图片数据准备和对齐 183
11.3.2 训练模型 184
11.3.3 验证模型 184
11.3.4 再训练模型 185
11.3.5 再评估模型 187
11.3.6 将模型Checkpoints文件转换成pb文件 188
11.4 基于FaceRecognition的人脸识别 188
11.4.1 配置环境 189
11.4.2 人脸检测 189
11.4.3 实时人脸识别 190
11.5 小结 193
第12章 人脸面部表情识别 194
12.1 基于Keras的卷积神经网络实现人脸面部表情识别 194
12.1.1 环境准备 194
12.1.2 数据准备 195
12.1.3 数据集分割 196
12.1.4 数据集预处理 196
12.1.5 构建CNN模型 197
12.1.6 图片增强与训练模型 199
12.1.7 评估模型 200
12.1.8 保存与读取模型 201
12.1.9 单张图片测试模型 202
12.2 视频中的人脸面部表情识别 205
12.2.1 读取模型 206
12.2.2 模型参数定义 206
12.2.3 视频的帧处理函数定义 206
12.2.4 识别与转换视频 207
12.3 实时人脸面部表情识别 208
12.3.1 模型参数定义 208
12.3.2 启动摄像头和识别处理 209
12.4 小结 210
第13章 人体姿态识别 211
13.1 基于TensorFlow实现人体姿态识别 211
13.1.1 环境准备 211
13.1.2 下载与安装 212
13.1.3 单张图片识别 212
13.1.4 视频中的人体姿态识别 215
13.1.5 实时摄像识别 217
13.2 基于Keras实现人体姿态识别 218
13.2.1 环境准备 219
13.2.2 下载仓库 219
13.2.3 单张图片识别 219
13.2.4 视频中的人体姿态识别 220
13.2.5 实时摄像识别 221
13.3 小结 221
第14章 皮肤癌分类 222
14.1 数据准备 222
14.1.1 环境准备 223
14.1.2 数据下载 223
14.1.3 数据可视化 224
14.2 基于Keras的卷积神经网络实现分类 226
14.2.1 数据预处理 226
14.2.2 创建CNN模型 227
14.2.3 编译模型 229
14.2.4 训练模型 229
14.2.5 评估模型和图像测试 230
14.3 基于TensorFlow的迁移学习实现分类 232
14.3.1 数据准备 232
14.3.2 训练模型 232
14.3.3 验证模型 233
14.3.4 Tensorboard可视化 233
14.4 小结 234
第15章 对象检测 235
15.1 对象检测的应用领域 236
15.1.1 无人机应用领域 236
15.1.2 自动驾驶汽车应用领域 236
15.1.3 无人超市应用领域 236
15.2 原理分析 236
15.2.1 R-CNN的介绍与分析 237
15.2.2 Faster R-CNN的介绍与分析 237
15.2.3 Mask R-CNN的介绍与分析 238
15.3 基于Mask R-CNN Inception COCO的图片对象检测 239
15.3.1 环境准备 239
15.3.2 导入Packages 240
15.3.3 下载Mask R-CNN Inception2018预训练模型 242
15.3.4 加载模型到内存中 242
15.3.5 加载类别映射 242
15.3.6 定义函数将图片转为NumPy数组 243
15.3.7 定义图片对象检测函数 243
15.3.8 检测图片中的对象 244
15.3.9 效果预览 245
15.4 基于Faster R-CNN Inception COCO的视频实时对象检测 246
15.4.1 环境准备 246
15.4.2 导入Packages 246
15.4.3 下载Faster R-CNN Inception2018预训练模型 247
15.4.4 加载模型到内存中 247
15.4.5 加载类别映射 247
15.4.6 定义视频中的图像对象检测函数 248
15.4.7 定义视频中的图像处理函数 249
15.4.8 视频中的图像对象检测 249
15.4.9 效果预览 250
15.5 基于SSD MobileNet COCO的实时对象检测 250
15.5.1 环境准备 250
15.5.2 导入Packages 250
15.5.3 下载SSD MobileNet 2018预训练模型 251
15.5.4 加载模型 251
15.5.5 加载类别映射 252
15.5.6 开启实时对象检测 252
15.5.7 效果预览 253
15.6 小结 254
第三篇 生成类项目实战 256
第16章 看图写话 256
16.1 数据准备 256
16.1.1 环境准备 257
16.1.2 数据下载 257
16.1.3 数据预处理 258
16.2 基于TensorFlow的Show and Tell实现看图写话 264
16.2.1 介绍 265
16.2.2 数据统计 265
16.2.3 构建TFRecords格式数据 266
16.2.4 训练模型 268
16.2.5 评估模型 268
16.2.6 测试模型 269
16.3 小结 270
第17章 生成电视剧剧本 271
17.1 数据准备 271
17.1.1 环境准备 271
17.1.2 数据预处理 272
17.1.3 数据可视化分析 274
17.2 基于TensorFlow的循环神经网络实现电视剧剧本生成 277
17.2.1 创建检查表 278
17.2.2 数据token化预处理 278
17.2.3 创建Tensor占位符和学习率 279
17.2.4 初始化RNN Cell 279
17.2.5 创建Embedding 280
17.2.6 创建神经网络 280
17.2.7 创建超参数和优化器 280
17.2.8 训练神经网络模型 281
17.2.9 生成电视剧剧本 283
17.3 基于textgenrnn来实现电视剧剧本生成 285
17.3.1 介绍 285
17.3.2 训练模型 285
17.3.3 生成剧本文本 286
17.4 小结 286
第18章 风格迁移 287
18.1 基于TensorFlow实现神经风格迁移 287
18.1.1 环境准备 287
18.1.2 图像预览 287
18.1.3 处理图像 289
18.1.4 模型获取 289
18.1.5 损失函数计算 290
18.1.6 训练模型与图像生成 292
18.2 基于Keras实现神经风格迁移 295
18.2.1 图像预览 295
18.2.2 图像处理 296
18.2.3 获取模型 297
18.2.4 损失函数计算 298
18.2.5 迭代与生成风格图像 298
18.3 小结 300
第19章 生成人脸 301
19.1 基于TensorFlow的GAN实现MNIST数字图像生成 301
19.1.1 环境准备 302
19.1.2 MNIST数字图像数据准备 302
19.1.3 随机查看25张图片 303
19.1.4 构建模型输入 304
19.1.5 构建鉴别器 305
19.1.6 构建生成器 306
19.1.7 计算模型损失 307
19.1.8 构建优化器 307
19.1.9 构建训练模型时的图像输出 308
19.1.10 构建训练模型函数 309
19.1.11 训练MNIST数据集的GAN模型 310
19.2 基于TensorFlow的GAN实现LFW人脸图像生成 313
19.2.1 人脸图像数据准备 314
19.2.2 训练LFW数据集的GAN模型 314
19.3 小结 315
第20章 图像超分辨率 316
20.1 效果预览与数据准备 316
20.1.1 效果预览 316
20.1.2 环境准备 317
20.1.3 数据准备 317
20.2 基于TensorFlow的DCGAN实现超分辨率 318
20.2.1 下载srez代码库 318
20.2.2 训练模型根据模糊图像生成清晰图像 318
20.2.3 输出效果预览 320
20.2.4 生成效果图视频 321
20.2.5 图片放大高清化 321
20.3 srez库的代码分析 322
20.3.1 主入口函数代码分析 322
20.3.2 创建模型代码分析 323
20.3.3 训练模型代码分析 323
20.4 小结 324
第21章 移花接木 325
21.1 基本信息 325
21.1.1 3种模型效果预览 325
21.1.2 环境准备 326
21.1.3 图片数据集准备 326
21.1.4 CycleGAN网络模型架构 327
21.2 基于CycleGAN根据苹果生成橘子 327
21.2.1 下载代码库 327
21.2.2 图片数据处理 328
21.2.3 训练模型 328
21.2.4 导出模型 329
21.2.5 测试图片 330
21.3 基于CycleGAN根据马生成斑马 332
21.3.1 图片数据处理 332
21.3.2 训练模型 332
21.3.3 导出模型 333
21.3.4 测试图片 334
21.4 男性和女性的人脸面貌互换 335
21.4.1 环境准备 335
21.4.2 计算和生成模型 336
21.4.3 代码分析 337
21.5 小结 338