专栏名称: InfoQ
有内容的技术社区媒体。
目录
相关文章推荐
51好读  ›  专栏  ›  InfoQ

AI技术大爆发背景下,开源深度学习框架的发展趋势如何?

InfoQ  · 公众号  · 科技媒体  · 2017-01-31 09:09

正文

请到「今天看啥」查看全文


随着大数据时代的来临,大数据处理技术的日趋成熟为解决深度学习模型训练耗时问题提供了重要发展方向,因此如何通过大数据训练深度学习模型在当前引起了广泛关注,大量的研究表明:增加训练样本数或模型参数的数量,或同时增加训练样本数和模型参数的数量,都能够极大地提升最终分类的准确性。由于Hadoop已经成为构建企业级大数据基础设施的事实标准,有许多的分布式深度学习算法框架被构建在Hadoop生态体系内,这种通过分布式集群提高处理能力的扩展方式被称为横向扩展(Scale Out)。

虽然利用Spark等平台训练深度学习算法可以极大地提高训练速度,但近年来,存储设备和网络在性能方面的提升远超CPU,如图2所示。

图2:存储系统、网络及CPU的性能变化比较

CPU性能瓶颈极大地限制了分布式环境下,单台节点的处理速度。为解决这一问题,许多优秀的开源深度学习框架都在尝试将开源大数据处理技术框架如Spark和GPGPU结合起来,通过提高集群中每台机器的处理性能来加速深度学习算法模型的训练,图3给出的是SparkNet的架构原理图。这种通过结合横向扩展及纵向扩展提高处理能力的方式被称为融合扩展。图4对深度学习提升性能的方式进行了总结,图中分别给出了横向扩展、纵向扩展及融合扩展的典型开源深度学习框架。

图3.SparkNet中的Scale Up和Scale Out

图4.深度学习提升性能的方式

下面将对目前一些优秀的开源深度学习框架进行介绍,包括基于GPU的单机开源深度学习框架和融合了GPU的开源分布式深度学习框架。让大家熟悉目前开源深度学习主流框架的同时,又能够进一步窥探开源分布式深度学习框架的发展方向。

单机开源深度学习框架

目前拥有众多的学术机构如国际顶级名校加州大学伯克利分校,以及互联网巨头如Google、微软等开源的深度学习工具,比较成熟的基于GPU的单机开源深度学习框架有:

  1. Theano:深度学习开源工具的鼻祖,由蒙特利尔理工学院时间开发于2008年并将其开源,框架使用Python语言开发。有许多在学术界和工业界有影响力的深度学习框架都构建在Theano之上,并逐步形成了自身的生态系统,这其中就包含了著名的Keras,Lasagne 和Blocks。

  2. Torch:Facebook 和 Twitter主推的一款开源深度学习框架,Google和多个大学研究机构也在使用Torch。出于性能的考虑,Torch使用一种比较小众的语言(Lua)作为其开发语言,目前在音频、图像及视频处理方面有着大量的应用。大名鼎鼎的Alpha Go便是基于Torch开发的,只不过在Google 开源TensorFlow之后,Alpha Go将迁移到TensorFlow上。

  3. TensorFlow:Google开源的一款深度学习工具,使用C++语言开发,上层提供Python API。在开源之后,在工业界和学术界引起了极大的震动,因为TensorFlow曾经是著名的Google Brain计划中的一部分,Google Brain项目的成功曾经吸引了众多科学家和研究人员往深度学习这个“坑”里面跳,这也是当今深度学习如此繁荣的重要原因,足见TensorFlow的影响力。TensorFlow一直在往分布式方向发展,特别是往Spark平台上迁移,这点在后面会有介绍。







请到「今天看啥」查看全文