从TensorFlow到DL4J——主流深度学习框架对比分析

本文对比分析了主流深度学习框架,包括TensorFlow、PyTorch、MXNet、DL4J等,探讨其来龙去脉和技术特点。文章指出,尽管框架众多,但主要分为TensorFlow、PyTorch、MXNet和CNTK四大阵营。每个框架都有其独特优势,如TensorFlow的广泛支持,PyTorch的灵活性,MXNet的分布式计算能力,以及CNTK在语音识别领域的专业性。此外,文章还介绍了中国本土的深度学习框架,如华为的MindSpore、百度的PaddlePaddle等。最后,作者强调了选型时应考虑的要素,如分布式计算、移动端部署、编程接口和社区支持,并鼓励开发者深入学习并动手实践。
摘要由CSDN通过智能技术生成

从TensorFlow到DL4J——主流深度学习框架对比分析

2022年2月22日 极链AI云
官网地址 点击注册
更多AI小知识,关注《极链AI云》公众号



一、深度学习框架概述与深度学习技术的四大阵营

人工智能从学术理论研究到生产应用的产品化开发过程中通常会涉及到多个不同的步骤和工具,这使得人工智能开发依赖的环境安装、部署、测试以及不断迭代改进准确性和性能调优的工作变得非常繁琐耗时也非常复杂。为了简化、加速和优化这个过程,学界和业界都作了很多的努力,开发并完善了多个基础的平台和通用工具,也被称会机器学习框架或深度学习框架。

哪一个深度学习框架是最好用呢?哪一个深度学习框架更适合自己呢?这真是一个十分让人纠结的问题。不过,在你选择站队之前,不妨和我一起来了解一下各个框架的来龙去脉,先看一看哪一个框架更能激发起你的兴趣,有了兴趣,剩下的问题就变得简单了,我们能够透过浮躁的排名和对比,深入研究这些框架背后的设计思想与技术本质。让每一个框架的优点都能为我所用。

当前主流的深度学习框架列表:
TensorFlow、Keras、PyTorch、MXNet、Caffe、Caffe2、Theano、FastAI、CNTK、Gluon、Torch、Deeplearning4j、Chainer。

看起来我们好像有很多很多选择,但其实如果我们进一步进行细分,就会发现我们的选择也并不是很多,没有巨头背书的框架就只能面临被淘汰和边缘化的命运了,其实顶级深度学习框架只有四大阵营,分别为:

  1. TensorFlow,前端框架Keras,背后巨头Google;
  2. PyTorch,前端框架FastAI,背后巨头Facebook;
  3. MXNet,前端框架Gluon,背后巨头Amazon;
  4. Cognitive Toolkit (CNTK),前端框架Keras或Gluon,背后巨头Microsoft。

每一个前端上层轻量级框架又都对应一个最适合的基础底层框架,这样就出现了深度学习框架的四大技术方向,每一个技术方向背后又都有一个巨头在背书和推动。


二、主流开源深度学习框架的来龙去脉

下面我们对每个主流框架的来龙去脉都来做一个详细的梳理与了解。

2.1 TensorFlow

图片

Google在2015年11月正式开源发布TensorFlow,TensorFlow由Google大脑团队开发,其命名来源于本身的运行原理。由于Google的巨大影响力和巨大支持,很快就成为深度学习领域占据绝对统治地位的框架。很多企业都在基于TensorFlow 开发自己的产品或将 TensorFlow整合到自己的产品中去,如Airbnb、Uber、Twitter、英特尔、高通、小米、京东等。

TensorFlow的编程接口支持C++和Python,Java、Go、R和Haskell API也将被支持,是所有深度学习框架中对开发语言支持的最全面的,TensorFlow可以在AWS和Google Cloud中运行,支持Windows 7、Windows 10、Windows Server 2016,TenserFlow使用C++ Eigen库,可以在ARM架构上编译和优化,使其可以在各种服务器和移动设备上部署自己的训练模型,也是在所有深度学习框架中支持运行平台最多的。

TensorFlow追求对运行平台和开发语言最广泛的支持,力求统一深度学习领域,但是这也带来了过于复杂的系统设计。

2.2 Keras

图片

Keras是第二流行的深度学习框架,但并不是独立框架。Keras由纯Python编写而成,以TensorFlow、Theano或CNTK为底层引擎。Keras是在Tensorflow上层封装的高级API层,提升易用性。Keras的目标是只需几行代码就能让你构建一个神经网络。

Keras的创造者是谷歌AI研究员Francois Chollet,也同时参与TensorFlow的开发,最初创建Keras是为了自己有一个好的工具来使用RNNs。在研究LSTM在自然语言处理中的应用时用Theano做了一个可重用的开源实现,逐渐变成了一个框架,并命名为Keras。Keras在2015年3月开源,最初因为同时支持CNN和RNN,可以通过Python代码而不是通过配置文件来定义模型等特点而逐渐流行起来。2017年,Keras成为第一个被Google添加到TensorFlow核心中的高级别框架,这让Keras变成Tensorflow的默认API,使Keras + TensorFlow的组合成为Google官方认可并大力支持的平台。

学习使用Keras很容易,但是大多数时间都在学习如何调用接口,难以真正学习到深度学习的内容,Keras层层封装让用户在新增操作或获取底层的数据信息时过于困难,存在过度封装导致缺乏灵活性的问题,性能也存在瓶颈。Keras有助于快速入门,但是不应该依赖它,需要进一步学习使用TensorFlow。

2.3 Pytorch

图片

PyTorch是Facebook开发的用于训练神经网络的Python包,也是Facebook倾力打造的首选深度学习框架,在2017年1月首次推出,Facebook人工智能研究院(FAIR)在GitHub上开源了PyTorch,迅速占领了GitHub热度榜榜首,Facebook用Python重写了基于Lua语言的深度学习库Torch。

PyTorch不是简单的封装Torch提供Python接口,而是对Tensor上的全部模块进行了重构,新增了自动求导系统,使其成为最流行的动态图框架,这使得PyTorch对于开发人员更为原生,与TensorFlow相比也更加年轻更有活力,PyTorch继承了Torch灵活、动态的编程环境和用户友好的界面,支持以快速和灵活的方式构建动态神经网络,还允许在训练过程中快速更改代码而不妨碍其性能,即支持动态图形等尖端AI模型的能力,是快速实验的理想选择。

PyTorch专注于快速原型设计和研究的灵活性,很快就成为AI研究人员的热门选择,流行度的增长十分迅猛,现在已经是第二流行的独立框架。PyTorch的社区迅速发展起来。PyTorch 现在是GitHub 上增长速度第二快的开源项目,在过去的12个月里,贡献者增加了2.8倍。这个增速是十分可怕的,意味着PyTorc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值