MXNet 深度学习实战 (12):全面认识 MXNet 1.3.2

阅读数:2 2019 年 12 月 28 日 22:57

MXNet深度学习实战(12):全面认识MXNet 1.3.2

(MXNet 的优势)

内容简介
本书分为四大部分:
第一部分为准备篇(第 1~2 章),简单介绍深度学习相关的基础背景知识、深度学习框架 MXNet 的发展过程和优缺点,同时介绍基础开发环境的构建和 docker 的使用,帮助读者构建必要的基础知识背景。
第二部分为基础篇(第 3~7 章),介绍 MXNet 的几个主要模块,介绍 MXNet 的数据读取、数据增强操作,同时介绍了常用网络层的含义及使用方法、常见网络结构的设计思想,以及介绍模型训练相关的参数配置。
第三部分为实战篇(第 8~10 章),以图像分类、目标检测和图像分割这三个常用领域为例介绍如何通过 MXNet 实现算法训练和模型测试,同时还将结合 MXNet 的接口详细介绍算法细节内容。
第四部分为扩展篇(第 11~12 章),主要介绍 Gluon 和 GluonCV。Gluon 接口是 MXNet 推出的用于动态构建网络结构的重要接口,GluonCV 则是一个专门为计算机视觉任务服务的深度学习库。

就像任何事物都有两面性一样,几个主流的深度学习框架也各有优缺点。Caffe 框架作为最优秀的深度学习框架之一,一直深受广大用户的欢迎,其优点是非常容易上手,积累的用户也很多;缺点是安装比较麻烦,会涉及各种环境依赖,另外要想灵活应用的话对新手而言还是比较困难的,而且该框架本身比较占用显存。TensorFlow 是目前应用最为广泛的深度学习框架,TensorFlow 的优点在于丰富的接口以及 Google 的强大技术支持,从开源以来,其积累了非常多的用户,并且随着学术界和工业界的不断推广,TensorFlow 的用户群体也在不断壮大。TensorFlow 宏观来看就是“大而全”,这种特点带来的问题就是其接口过于丰富,因此对于新人而言入门较难,往往会面临的问题是要实现一个简单的层却不知道该选择什么样的接口。PyTorch 作为主流的深度学习框架中的后起之秀,是在原来已有的 Torch 框架上封装了 Python 接口并优化而成的,相信很多使用过 PyTorch 的读者都会被 PyTorch 的简洁所吸引,这得益于其命令式编程的设计方式,因此非常适合用于搞研究,或者称为快速试错;当然纯命令式编程的方式带来的问题是工业界线上部署的效率问题,所以 Facebook 内部对 PyTorch 的定位也是研究首选,而线上部署方面则是首选 Caffe/Caffe2。另外由于 PyTorch 目前还在快速迭代中,所以文档和接口变化较大,新手需要一定的时间来适应。

那么为什么我推荐使用 MXNet 呢?有以下几个原因。

1)MXNet 结合了命令式编程和符号式编程,因此兼顾了灵活和高效,既方便研究试错又适合线上部署。

2)框架比较稳定。MXNet 从开源至今已经经历了早期开发时频繁迭代的阶段,目前接口基本上比较稳定,这将大大降低代码维护的成本。

3)MXNet 在显存方面的优化做得非常好,可以帮助你节省机器资源,而且在训练相同的模型时,MXNet 比大多数的深度学习框架的训练速度要快,这也能节省不少的训练时间。

4)MXNet 安装方便,文档清晰,例子丰富,非常方便新人上手学习。

总结起来,对于深度学习框架而言,没有最好的,只有最适合的。如果在高校做研究,那么我会推荐使用 MXNet 或者 PyTorch,这两者非常便于设计网络结构和调试;如果是在工业界需要上线部署模型,那么我会推荐使用 MXNet、TensorFlow 或 Caffe。

MXNet深度学习实战(12):全面认识MXNet 1.3.2

购书地址 https://item.jd.com/12620056.html?dist=jd

评论

发布