2018 年 深度学习框架 盘点 比较 推荐 柔光的暖阳◎ 2022-06-06 10:55 265阅读 0赞 深度学习领域发展迅猛,江湖风起云涌。在此,咪博士为大家细细盘点、比较,各大深度学习框架。也祝大家都能训出好模型,调出好参数。 **以下是咪博士的观点,供大家参考:** * 如果你是初学者,那么推荐选择 Keras 或 Gluon 这样简单易用的接口入门。至于是 Keras 还是 Gluon 就不必太纠结了,因为二者都很容易上手,完全可以都学一下。如果非要分个先后的话,可以先试试 Gluon 毕竟开发者是中国人,有官方出品的中文教程带你入门。 * 学完 Keras 或 Gluon “前端”框架之后,再选择一个“后端”框架深入学习,TensorFlow (Keras 后端) 或 MXNet (Gluon 后端) 是咪博士推荐的 2 个后端框架。TensorFlow 谷歌 (Google) 出品,MXNet 有 亚马逊 (Amazon) 支持,它们都是非常优秀的深度学习框架。至于是 TensorFlow 还是 MXNet,那就得看你的需求了。TensorFlow 受众更广,但是性能较差,而且不支持动态计算图;MXNet 目前还比较小众,但性能较好,而且支持动态计算图,十分方便搞自然语言处理 (NLP) 的朋友。 * 学习完后端框架之后,你就可以非常灵活地定制自己的神经网络,自由地在深度学习的世界里翱翔了。这里候,如果你有兴趣(或需要),可以试试其他的一些框架,如 PyTorch (灵活多变,适合研究), Caffe2 (性能优化,手机也能跑), Deeplearning4j (Java 首选,整合 Hadoop, Spark), 以及 ConvNetJS (Js 开发,浏览器上玩深度学习)。 * 其他一些深度学习框架,诸如 Theano (Lasagne, 以及 Blocks), Torch, Caffe, CNTK, Chainer, Paddle, DSSTNE, DyNet, BigDL, Neon 等,由于众多原因,咪博士就不给大家推荐了。 **下面是详细的比较和说明:** **一、推荐使用** ![keras.jpg][] [**Keras**][Keras] 受到 Torch 启发,Keras 提供了简单易用的 API 接口,特别适合初学者入门。其后端采用 TensorFlow, CNTK,以及 Theano。另外,Deeplearning4j 的 Python 也是基于 Keras 实现的。Keras 几乎已经成了 Python 神经网络的接口标准。 ![gluon.png][] [**Gluon**][Gluon] 亚马逊 (Amazon) 和 微软 (Microsoft) 于 2017 年 10 月联合推出的深度学习 API。Gluon 类似 Keras,提供了简单易用的 API 接口。但和 Keras 不一样的地方是,Gluon 还支持动态计算图(对自然语言处理特别有用)。Gluon 后端目前采用 MXNet,未来还将支持微软的 CNTK。 ![tensorflow.png][] [**TensorFlow**][TensorFlow] 谷歌 (Google) 大厂出品,追随者众多。相比其他框架,TensorFlow 速度较慢,但它提供的 TensorBoard 可视化工具还是很不错的。 ![mxnet.png][] [**MXNet**][MXNet] 已被 亚马逊 (Amazon) 选为 AWS 上的深度学习框架,支持动态图计算。MXNet 有许多中国开发者,因而有非常良好的中文文档支持。Gluon 接口使得 MXNet 像 Keras 一样简单易用。 **二、值得一试** ![pytorch.png][] [**PyTorch**][PyTorch] 背后金主是 脸书 (Facebook) ,同样支持动态计算图,提供很好的灵活性,适合研究。 ![caffe2.jpg][] [**Caffe2**][Caffe2] 同样是 脸书 (Facebook) 出品,为生产环境设计,提供在各种平台(包括移动设备)的运行时。 ![deeplearning4j.jpg][] [**Deeplearning4j**][Deeplearning4j] 与其他(大多数)基于 Python 的深度学习框架不同,Deeplearning4j 基于 Java 开发,与 Hadoop, Spark 生态结合得很好。尤其令人称道的是其优秀的文档,官司方文档直接就有中文版本。另外,虽然是面向 Java 的框架,Deeplearning4j 也提供了 Python 的接口(基于 Keras 实现) ![convnetjs.jpg][] [**ConvNetJS**][ConvNetJS] 基于 Javascript 的深度学习框架,可以在浏览器中训练深度神经网络。最重要的用途是帮助学习 Deep Learning **三、不推荐** **Theano, Lasagne, 以及 Blocks** Yoshua Bengio 于 2017 年 09 月宣布不再维护 Theano,所以这个项目事实上已经宣告死亡了。其他基于 Theano 的库,如 Lasagne 和 Blocks,也可以散了。 **Torch** 虽然设计精良(Keras 就是参考 Torch 设计的),但它基于 Lua 语言,太过小众了。而且 Facebook 已经推出了 Python 版本的 PyTorch 了。 **Caffe** Caffe2 已经正式发布了,彻底取代 Caffe 只是时间问题罢了。 **CNTK** 微软出品,授权协议有一些特别,而且似乎也没有什么特别亮眼的地方。 **Chainer** 曾经是动态计算图的首选框架,特别适用于自然语言处理。但是,现在许多其他的框架,如 MXNet, PyTorch, 以及 DyNet 也支持该特性,所以 Chainer 的这一优势也就不复存在了。 **Paddle** 百度的深度学习框架,受众太小。 **DSSTNE** 曾是亚马逊的深度学习引擎,但是很小众,而且现在亚马逊又选择了 MXNet,所以 DSSTNE 的前途就更渺茫了。 **DyNet** 源自卡耐基梅隆大学,支持动态计算图,但是太小众了。 **BigDL** Intel 基于 spark 的深度学习库,但只能运行在 Intel 芯片之上。 **Neon** 据说速度很快,但太过小众,而且发展还不完善,许多特性还不支持。 **参考** 1. [https://deeplearning4j.org/compare-dl4j-tensorflow-pytorch][https_deeplearning4j.org_compare-dl4j-tensorflow-pytorch] 2. [http://docs.chainer.org/en/stable/comparison.html][http_docs.chainer.org_en_stable_comparison.html] 3. [http://www.ipaomi.com/2017/11/06/2018-年-深度学习框架-盘点-比较-推荐/][http_www.ipaomi.com_2017_11_06_2018-_-_-_-_-] [keras.jpg]: http://www.ipaomi.com/wp-content/uploads/2017/11/keras.jpg [Keras]: https://keras.io/ [gluon.png]: http://www.ipaomi.com/wp-content/uploads/2017/11/gluon.png [Gluon]: https://github.com/gluon-api/gluon-api [tensorflow.png]: http://www.ipaomi.com/wp-content/uploads/2017/11/tensorflow.png [TensorFlow]: https://www.tensorflow.org [mxnet.png]: http://www.ipaomi.com/wp-content/uploads/2017/11/mxnet.png [MXNet]: https://mxnet.incubator.apache.org/ [pytorch.png]: http://www.ipaomi.com/wp-content/uploads/2017/11/pytorch.png [PyTorch]: http://pytorch.org/ [caffe2.jpg]: http://www.ipaomi.com/wp-content/uploads/2017/11/caffe2.jpg [Caffe2]: https://caffe2.ai/ [deeplearning4j.jpg]: http://www.ipaomi.com/wp-content/uploads/2017/11/deeplearning4j.jpg [Deeplearning4j]: https://deeplearning4j.org/ [convnetjs.jpg]: http://www.ipaomi.com/wp-content/uploads/2017/11/convnetjs.jpg [ConvNetJS]: http://cs.stanford.edu/people/karpathy/convnetjs/ [https_deeplearning4j.org_compare-dl4j-tensorflow-pytorch]: https://deeplearning4j.org/compare-dl4j-tensorflow-pytorch [http_docs.chainer.org_en_stable_comparison.html]: http://docs.chainer.org/en/stable/comparison.html [http_www.ipaomi.com_2017_11_06_2018-_-_-_-_-]: http://www.ipaomi.com/2017/11/06/2018-%e5%b9%b4-%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0%e6%a1%86%e6%9e%b6-%e7%9b%98%e7%82%b9-%e6%af%94%e8%be%83-%e6%8e%a8%e8%8d%90/
还没有评论,来说两句吧...