第1章 全面认识MXNet 1
1.1 人工智能、机器学习与深度学习 2
1.1.1 人工智能 2
1.1.2 机器学习 2
1.1.3 深度学习 4
1.2 深度学习框架 4
1.2.1 MXNet 6
1.2.2 PyTorch 6
1.2.3 Caffe巭Caffe2 7
1.2.4 TensorFlow 7
1.2.5 其他 7
1.3 关于MXNet 8
1.3.1 MXNet的发展历程 8
1.3.2 MXNet的优势 9
1.4 MXNet开发需要具备的知识 10
1.4.1 接口语言 11
1.4.2 NumPy 11
1.4.3 神经网络 11
1.5 本章小结 12
第2章 搭建开发环境 13
2.1 环境配置 14
2.2 使用Docker安装MXNet 19
2.2.1 准备部分 19
2.2.2 使用仓库安装Docker 20
2.2.3 基于安装包安装Docker 23
2.2.4 安装nvidia-docker 23
2.2.5 通过Docker使用MXNet 25
2.3 本地pip安装MXNet 27
2.4 本章小结 29
第3章 MXNet基础 31
3.1 NDArray 31
3.2 Symbol 37
3.3 Module 43
3.4 本章小结 48
第4章 MNIST手写数字体分类 50
4.1 训练代码初探 52
4.2 训练代码详细解读 55
4.2.1 训练参数配置 56
4.2.2 数据读取 59
4.2.3 网络结构搭建 59
4.2.4 模型训练 61
4.3 测试代码初探 62
4.4 测试代码详细解读 64
4.4.1 模型导入 64
4.4.2 数据读取 66
4.4.3 预测输出 67
4.5 本章小结 68
第5章 数据读取及增强 69
5.1 直接读取原图像数据 70
5.1.1 优点及缺点 70
5.1.2 使用方法 71
5.2 基于RecordIO文件读取数据 75
5.2.1 什么是RecordIO文件 75
5.2.2 优点及缺点 76
5.2.3 使用方法 76
5.3 数据增强 78
5.3.1 resize 79
5.3.2 crop 83
5.3.3 镜像 89
5.3.4 亮度 90
5.3.5 对比度 92
5.3.6 饱和度 94
5.4 本章小结 95
第6章 网络结构搭建 97
6.1 网络层 98
6.1.1 卷积层 98
6.1.2 BN层 106
6.1.3 激活层 108
6.1.4 池化层 111
6.1.5 全连接层 114
6.1.6 损失函数层 116
6.1.7 通道合并层 119
6.1.8 逐点相加层 121
6.2 图像分类网络结构 122
6.2.1 AlexNet 123
6.2.2 VGG 124
6.2.3 GoogleNet 125
6.2.4 ResNet 128
6.2.5 ResNeXt 130
6.2.6 DenseNet 131
6.2.7 SENet 132
6.2.8 MobileNet 134
6.2.9 ShuffleNet 136
6.3 本章小结 138
第7章 模型训练配置 140
7.1 问题定义 141
7.2 参数及训练配置 142
7.2.1 参数初始化 142
7.2.2 优化函数设置 144
7.2.3 保存模型 145
7.2.4 训练日志的保存 146
7.2.5 选择或定义评价指标 147
7.2.6 多GPU训练 150
7.3 迁移学习 151
7.4 断点训练 153
7.5 本章小结 154
第8章 图像分类 156
8.1 图像分类基础知识 157
8.1.1 评价指标 158
8.1.2 损失函数 160
8.2 猫狗分类实战 160
8.2.1 数据准备 161
8.2.2 训练参数及配置 165
8.2.3 数据读取 168
8.2.4 网络结构搭建 170
8.2.5 训练模型 171
8.2.6 测试模型 176
8.3 本章小结 179
第9章 目标检测 180
9.1 目标检测基础知识 182
9.1.1 数据集 184
9.1.2 SSD算法简介 188
9.1.3 anchor 189
9.1.4 IoU 194
9.1.5 模型训练目标 195
9.1.6 NMS 199
9.1.7 评价指标mAP 201
9.2 通用目标检测 202
9.2.1 数据准备 203
9.2.2 训练参数及配置 205
9.2.3 网络结构搭建 208
9.2.4 数据读取 215
9.2.5 定义训练评价指标 218
9.2.6 训练模型 220
9.2.7 测试模型 221
9.4 本章小结 224
第10章 图像分割 225
10.1 图像分割 226
10.1.1 数据集 227
10.1.2 评价指标 229
10.1.3 语义分割算法 230
10.2 语义分割实战 231
10.2.1 数据准备 232
10.2.2 训练参数及配置 233
10.2.3 数据读取 237
10.2.4 网络结构搭建 240
10.2.5 定义评价指标 245
10.2.6 训练模型 249
10.2.7 测试模型效果 251
10.3 本章小结 253
第11章 Gluon 255
11.1 Gluon基础 256
11.1.1 data模块 256
11.1.2 nn模块 260
11.1.3 model zoo模块 265
11.2 CIFAR10数据集分类 267
11.2.1 基于CPU的训练代码 267
11.2.2 基于GPU的训练代码 272
11.2.3 测试代码 275
11.3 本章小结 276
第12章 GluonCV 278
12.1 GluonCV基础 279
12.1.1 data模块 280
12.1.2 model zoo模块 285
12.1.3 utils模块 292
12.2 解读ResNet复现代码 293
12.2.1 导入模块 296
12.2.2 命令行参数设置 296
12.2.3 日志信息设置 297
12.2.4 训练参数配置 298
12.2.5 模型导入 300
12.2.6 数据读取 301
12.2.7 定义评价指标 303
12.2.8 模型训练 303
12.3 本章小结 308