近几年,随着深度学习爆炸式发展,在人工智能领域除了理论方面的突破外,还有基础架构的突破,它们奠定了深度学习繁荣发展的基础。这其中涌现了几个著名的深度学习平台,本文将对这些平台进行逐一介绍。

4款深度学习结构简介,初学者该怎么挑选?  深度学习 人工智能 IT 第1张

01 Theano

4款深度学习结构简介,初学者该怎么挑选?  深度学习 人工智能 IT 第2张

Theano是在BSD许可证下发布的一个开源项目,诞生于加拿大魁北克蒙特利尔大学的LISA试验室,是用一位希腊数学家的姓名命名的。

Theano是一个Python库,可用于界说、优化和核算数学表达式,特别是多维数组(numpy.ndarray)。在处理包括很多数据的问题时,运用Theano可完成比手写C 言语更快的编程速度。而经过GPU加快,Theano乃至能够比根据CPU核算的C言语快上好几个数量级。

Theano结合了核算机代数体系(Computer Algebra System,CAS)和优化编译器,还能够为多种数学运算生成定制的C言语代码。关于包括重复核算的杂乱数学表达式使命,核算速度很重要,因而这种CAS和优化编译器的组合是很有用的。

关于需求将每种不同数学表达式都核算一遍的状况,Theano能够完成编译/解析核算量的最小化,但仍然会给出如主动微分那样的符号特征。

在曩昔很长一段时间内,Theano是深度学习开发与研讨的行业标准。而且由于诞生于学界,Theano开端是为学术研讨而规划的,深度学习范畴的许多学者至今仍在运用Theano。

但跟着TensorFlow在谷歌的支撑下强势兴起,Theano日渐式微,运用的人越来越少。在这个进程中标志性事情是:Theano创始者之一Ian Goodfellow抛弃Theano转去谷歌开发TensorFlow了。

2017年9月28日,在Theano 1.0正式版发布前夕,LISA试验室负责人、深度学习三巨子之一的Yoshua Bengio宣告Theano将中止继续开发:“Theano is Dead.”

虽然Theano正渐渐退出历史舞台,但作为第一个Python深度学习结构,Theano很好地完成了自己的使命,为深度学习研讨人员前期开荒供给了极大的协助,一起也为之后深度学习结构的开发奠定了根本规划方向:以核算图为结构的中心,选用GPU加快核算。

总结:深度学习新手能够运用Theano来操练,但关于作业开发者,主张运用其他干流深度学习结构。

02 TensorFlow

4款深度学习结构简介,初学者该怎么挑选?  深度学习 人工智能 IT 第3张

2015年11月10日,Google宣告推出全新的机器学习开源东西TensorFlow。TensorFlow开端是由Google机器智能研讨部分Google Brain团队根据Google 2011年开发的深度学习根底架构DistBelief构建的。

TensorFlow触及很多数学运算的算法库,是现在运用最广泛的机器学习东西之一。Google在大部分运用程序中都运用TensorFlow来完成机器学习。例如,咱们运用Google照相或Google语音查找功用时,便是直接运用了TensorFlow模型,它们在大型Google硬件集群上作业,在感知使命方面功用强壮。

TensorFlow在很大程度上能够看作Theano的后继者,不只由于它们有很大一批一起的开发者,更是由于它们还具有附近的规划理念——根据核算图完成主动微分体系。

TensorFlow编程接口支撑Python和C++。跟着1.0版别的发布,相继支撑了Java、Go、R和Haskell API的alpha版别。此外,TensorFlow可在Google Cloud和AWS中运转。TensorFlow还支撑 Windows 7、Windows 10和Windows Server 2016。

由于TensorFlow运用C++ Eigen库,所以库可在ARM架构上进行编译和优化。这也就意味着用户能够在各种服务器和移动设备上布置自己的练习模型,无须履行独自的模型解码器或许加载Python解说器。

作为当时干流的深度学习结构,TensorFlow取得了极大的成功,但在学习进程中,读者也需求留意如下问题。

  1. 由于TensorFlow的接口一向处于快速迭代之中,而且版别之间存在不兼容的问题,因而开发和调试进程可能会出现问题(许多开源代码无法在新版的TensorFlow上运转)。
  2. 想学习TensorFlow底层运转机制的读者需求做好心理准备,TensorFlow在GITHub代码库房的总代码量超越100万行,体系规划比较杂乱,因而这将是一个绵长的学习进程。
  3. 在代码层面,面临同一个功用,TensorFlow供给了多种完成,这些完成良莠不齐,运用中还有纤细的差异,请读者留意区别。别的,TensorFlow发明了图、会话、命名空间、PlaceHolder等许多抽象概念,对普通用户来说难以了解。

总结:凭仗Google强壮的推行才能,TensorFlow已经成为当今最炙手可热的深度学习结构,虽不完美可是最盛行。现在各公司运用的结构也不共同,读者有必要多学习几个盛行结构以作为常识储藏,TensorFlow便是一个不错的挑选。

03 Keras

4款深度学习结构简介,初学者该怎么挑选?  深度学习 人工智能 IT 第4张

Keras是一个高层神经网络API,由纯Python编写而成并运用TensorFlow、Theano及CNTK作为后端。Keras为支撑快速试验而生,能够把主意敏捷转换为成果。Keras应该是深度学习结构之中最简单上手的一个,它供给了共同而简练的API,能够极大地削减一般运用下用户的作业量,防止用户重复造轮子。

严厉意义上讲,Keras并不能算是一个深度学习结构,它更像一个构建于第三方结构之上的深度学习接口。Keras的缺陷很明显:过度封装导致损失灵活性。

Keras开端作为Theano的高档API,后来增加了TensorFlow和CNTK作为后端。为了屏蔽后端的差异性,供给共同的用户接口,Keras做了层层封装,导致用户在新增操作或获取底层的数据信息时过于困难。

一起,过度封装也使得Keras的程序履行十分缓慢,许多Bug都躲藏于封装之中,在绝大多数场景下,Keras是本书介绍的一切结构中运转最慢的一个。

学习Keras十分简单,可是很快就会遇到瓶颈,由于它短少灵活性。别的,在运用Keras的大多数时间里,用户主要是在调用接口,很难真实学到深度学习的内容。

总结:Keras比较合适作为深度学习结构,可是过度的封装并不合适新手学习(无法了解深度学习的真实内在),故不引荐。

04 PyTorch

4款深度学习结构简介,初学者该怎么挑选?  深度学习 人工智能 IT 第5张

PyTorch是一个Python优先的深度学习结构,能够在强壮的GPU加快根底上完成张量和动态神经网络。

PyTorch是一个Python软件包,供给了如下两种高层面的功用。

  • 运用强壮的GPU加快的Tensor核算(相似 Numpy)。
  • 构建根据tape结构的autograd体系深度神经网络。

除此之外,PyTorch供给了完好的官方文档、协助用户按部就班地学习的用户攻略,以及作者亲身保护的论坛以供用户沟通和请教。

Facebook人工智能研讨院FAIR对PyTorch供给了强力支撑,作为当今世界排名前三的深度学习研讨机构,FAIR的力挺足以保证PyTorch取得继续开发、更新的支撑,不至于像许多由个人开发的结构那样仅仅稍纵即逝。

如有需求,你也能够运用自己喜爱的Python软件包(如Numpy、scipy和Cython)来扩展PyTorch。

相关于TensorFlow,PyTorch有一个明显长处,便是它的图是动态的,而TensorFlow是静态的,不利于扩展。一起,PyTorch的运用十分便利。

总结:如果说TensorFlow的规划是“Make it complicated”,Keras的规划是“Make it complicated and hide it”,那么PyTorch的规划真实做到了“Keep it Simple,Stupid”。

小结:深度学习结构该怎么挑选?

初学者往往纠结于挑选哪个深度学习结构作为学习的开端。在这里笔者主张初学者挑选简单上手、非过度调用接口的结构。别的关于初学者来说,所选结构应具有易用性强、功能佳、社区完善以及渠道支撑等特色。

当今行业界各大公司运用的结构也都不尽相同,因而初学者能够考虑把握多个结构(比方PyTorch和TensorFlow)以应对未来的职场要求。

转载请说明出处
知优网 » 4款深度学习结构简介,初学者该怎么挑选?

发表评论

您需要后才能发表评论