机器学习是人工智能领域中非常重要的一个研究方向,而深度学习作为机器学习的重要组成部分,伴随着近几年数据规模的增长和计算力的提升而备受关注。深度学习框架的快速发展大大降低了算法的入门门槛,越来越多的深度学习从业者能够通过这些框架实现算法并应用到生活场景中,让我们的生活更加智能和便捷。
通过阅读本书,你将学到:
MXNet、TensorFlow、Pytorch、Caffe等深度学习框架的差异
MXNet框架各主要模块的技术原理和应用实践
MXNet在图像分类、目标检测、图像分割中的应用,以及相关算法的训练、模型测试和实现细节
基于动态图构建网络结构的Gluon接口
MXNet专门为计算机视觉任务推出的深度学习库GluonCV
从零开始实现深度学习和计算机视觉算法的方法
本书分为四大部分:
第一部分为准备篇(第1~2章),简单介绍深度学习相关的基础背景知识、深度学习框架MXNet的发展过程和优缺点,同时介绍基础开发环境的构建和docker的使用,帮助读者构建必要的基础知识背景。
第二部分为基础篇(第3~7章),介绍MXNet的几个主要模块,介绍MXNet的数据读取、数据增强操作,同时介绍了常用网络层的含义及使用方法、常见网络结构的设计思想,以及介绍模型训练相关的参数配置。
第三部分为实战篇(第8~10章),以图像分类、目标检测和图像分割这三个常用领域为例介绍如何通过MXNet实现算法训练和模型测试,同时还将结合MXNet的接口详细介绍算法细节内容。
第四部分为扩展篇(第11~12章),主要介绍Gluon和GluonCV。Gluon接口是MXNet推出的用于动态构建网络结构的重要接口,GluonCV则是一个专门为计算机视觉任务服务的深度学习库。
前言
第1章 全面认识MXNet1
1.1 人工智能、机器学习与深度学习2
1.1.1 人工智能2
1.1.2 机器学习2
1.1.3 深度学习4
1.2 深度学习框架4
1.2.1 MXNet6
1.2.2 PyTorch6
1.2.3 Caffe/Caffe27
1.2.4 TensorFlow7
1.2.5 其他7
1.3 关于MXNet8
1.3.1 MXNet的发展历程8
1.3.2 MXNet的优势9
1.4 MXNet开发需要具备的知识10
1.4.1 接口语言11
1.4.2 NumPy11
1.4.3 神经网络11
1.5 本章小结12
第2章 搭建开发环境13
2.1 环境配置14
2.2 使用Docker安装MXNet19
2.2.1 准备部分19
2.2.2 使用仓库安装Docker20
2.2.3 基于安装包安装Docker23
2.2.4 安装nvidia-docker23
2.2.5 通过Docker使用MXNet25
2.3 本地pip安装MXNet27
2.4 本章小结29
第3章 MXNet基础31
3.1 NDArray31
3.2 Symbol37
3.3 Module43
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 resize79
5.3.2 crop83
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 AlexNet123
6.2.2 VGG124
6.2.3 GoogleNet125
6.2.4 ResNet128
6.2.5 ResNeXt130
6.2.6 DenseNet131
6.2.7 SENet132
6.2.8 MobileNet134
6.2.9 ShuffleNet136
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 anchor189
9.1.4 IoU194
9.1.5 模型训练目标195
9.1.6 NMS199
9.1.7 评价指标mAP201
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
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录