新书推荐
《MXNet深度学习实战:计算机视觉算法实现》
长按二维码
了解及购买
网易资深计算机视觉算法工程师撰写,从算法实现和框架原理2个维度详细讲解计算机视觉算法的实现和MXNet框架的使用与原理。
编辑推荐
机器学习是人工智能领域中非常重要的一个研究方向,而深度学习作为机器学习的重要组成部分,伴随着近几年数据规模的增长和计算力的提升而备受关注。深度学习框架的快速发展大大降低了算法的入门门槛,越来越多的深度学习从业者能够通过这些框架实现算法并应用到生活场景中,让我们的生活更加智能和便捷。
通过阅读本书,你将学到:
MXNet、TensorFlow、Pytorch、Caffe等深度学习框架的差异
MXNet框架各主要模块的技术原理和应用实践
MXNet在图像分类、目标检测、图像分割中的应用,以及相关算法的训练、模型测试和实现细节
基于动态图构建网络结构的Gluon接口
MXNet专门为计算机视觉任务推出的深度学习库GluonCV
从零开始实现深度学习和计算机视觉算法的方法
内容简介
这是一本详细讲解计算机视觉算法实现以及MXNet框架的原理和使用的工具书。
作者是网易的资深计算机视觉算法工程师,本书融合了他丰富的工程实践经验,一方面详细讲解了深度学习框架MXNet的技术原理和应用方法,一方面以MXNet为工具讲解了算法实现的具体细节。辅以大量简洁的代码,助你从零基础开始实现深度学习算法。
全书共12章,分为4个部分:
第一部分 准备篇(第1~2章)
介绍了MXNet的发展、优势、预备知识、各种深度学习框架的对比,以及开发环境的搭建,包括Docker的使用。
第二部分 基础篇(第3~7章)
纤细讲解了MXNet主要模块使用和原理,如MXNet的数据读取、数据增强操作、常用网络层的含义及使用、常见网络结构的设计思想、模型训练相关的参数配置等。
第三部分 实战篇(第8~10章)
以图像分类、目标检测、图像分割这三个常用领域为例演示了如何通过MXNet实现算法训练和模型测试,同时还结合MXNet的接口详细讲解了算法实现的细节。
第四部分 扩展篇(第11~12章)
主要介绍了基于动态图构建网络结构的Gluon接口,以及MXNet专门为计算机视觉任务推出的深度学习库GluonCV。
作者简介
魏凯峰
资深AI算法工程师和计算机视觉工程师,在MXNet、Pytorch、深度学习相关算法等方面有深入的研究和丰富的实践经验。
目前就职于网易杭州研究院,从事计算机视觉算法相关的工作,主要研究方向包括目标检测、图像分类、图像对抗算法、模型加速和压缩。
热衷于分享,坚持在Github上分享算法相关的代码,坚持在CSDN上撰写算法相关的博客,累计百余篇,访问量过百万。
目录
前言
第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
第11章 Gluon255
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章 GluonCV278
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
你与世界
只差一个
公众号