23个最受欢迎的深度学习库,数据科学家们都在用啥

916 阅读6分钟

论智

编译 | Bot

来源 | Data Science Central

编者按:近日,美国公司The Data Incubator的CEO Michael Li发布了一则深度学习库排名,反映了当前数据科学家的一些工作、学习偏好。据论智了解,The Data Incubator是全球最大的数据科学培训公司,以录取率低于3%、“比哈佛还要难考”闻名业界。在这份排名中,The Data Incubator根据各大深度学习库在Github、Stack Overflow和Google搜索上的表现进行打分,并评价了主流深度学习库的市场表现。

排名

以下是数据科学家常用的23个开源深度学习库的榜单,排名顺序基于它们在Github、Stack Overflow和Google搜索上的具体表现。该表显示标准化分数,平均值为0,如果分数是1,则代表它比平均水平高出一个标准差。以Caffe和deepmind4j为例,Caffe在Github上的分数是1,表示它在该平台的表现高于平均值,而deepmind4j的分数是-0.06,说明它接近平均水平。

结论1:TensorFlow依靠庞大的活跃社区坐上头把交椅

据上图可以发现,TensorFlow在所有平台上的表现都比平均水平至少高出2个标准差以上。和排名第三的Caffe相比,它在Github forks上的表现是前者的3倍,在Stack Overflow questions上甚至达到了突破天际的14倍。作为一个诞生仅两年的新库,TensorFlow成功的背后是谷歌在机器学习上的胜利。

2015年11月,谷歌大脑把TensorFlow作为开源软件发布,虽然它支持在C++引擎上运行Python API,但直接用来写代码还是太麻烦,所以有人就把TensorFlow作为后台又写了一些深度学习框架,如榜单中的Keras、Sonnet。无论如何,TensorFlow的高人气是有依据的,它集通用深度学习框架、接口灵活、美观简洁的图形界面以及由谷歌员工和开发者社区贡献的大量资源为一体,足以占据优势地位。

结论2:Caffe2代替Caffe还为时过早

Caffe在榜单中排名第三,撇开TensorFlow,它在Github上的强势地位无人能及。Caffe一直被业内认为是比TensorFlow更专业的深度学习库,它在图像处理、对象识别和预训练卷积神经网络上有不错的表现。2017年4月,Facebook正式发布Caffe2,从榜单中可以看出,这6个月来Caffe2突飞猛进,已经超越了半数热门深度学习库,但和Caffe还有不小的距离。Caffe2轻量级、模块化、可扩展,同时包含循环神经网络。两者的代码库是互相独立的,所以数据科学家可以继续使用原始版本的Caffe。但为了吸引更多的老用户,Caffe2也有一些像Caffe Translator这样的迁移工具,帮助开发者在Caffe2上驱动Caffe模型。

结论3:Keras是深度学习领域最流行的前端

Keras是排名最高的非框架库,可以作为TensorFlow、Theano、MXNet、CNTK和deeplearning4j的前端。它的流行源于简单易用,这也使它在三个平台上的表现高于平均水平,并跃居榜单第二位。Keras允许用户快速建立模型,代价是降低直接使用框架时的灵活性和控制性。当需要在数据集中使用深度学习时,Keras是许多数据科学家的心目中的首选。近期,R Studio推出了面向Keras的R语言接口,这一变化将使Keras维持现有的发展和推广势头,在深度学习的道路上继续前进。

结论4:即使没有科技巨头撑腰,Theano依旧占据一席之地

随着越来越多深度学习新框架的涌现,Theano这个历史最悠久的“老古董”不仅没有消失,反而更坚挺地在榜单中占据一席之地。Theano率先使用计算图,这在整个深度学习和机器学习圈中十分流行。它实际上是面向Python的数值计算库,但能够和像Lasagne这样的高级深度学习封装库一起使用。如今,TensorFlow、Keras有谷歌支持,PyTorch和Caffe2有Facebook力挺,微软设计并维护着CNTK,亚马逊也不甘落后地推出了官方深度学习框架MXNet,出身“草根”的Theano没有“大树”可依,但凭借灵活性的优点,它依然深受欢迎。

结论5:Sonnet是发展速度最快的库

今年年初,DeepMind团队公布了Sonnet,一个能在TensorFlow上快速创建神经网络模块的高级框架。根据谷歌搜索数据,本季度Sonnet的搜索结果数量提升了272%,是所有库中增幅最大的。虽然DeepMind早在2014年就被谷歌收购了,但该团队和谷歌大脑互相独立,DeepMind专注于强人工智能,而谷歌大脑研究的是机器如何学习,有网友戏称,Sonnet的作用是把TensorFlow变得更像Torch。基于DeepMind的研究领域,未来Sonnet会在AI思维研究上做出贡献。

结论6:Python是深度学习接口的首选语言

只支持Python接口的PyTorch是榜单上增长第二快的深度学习库。与上季度相比,PyTorch谷歌搜索返回页面增加了236%。在这23个库中,没有Python接口的只有3个:DLIB、MatConvNet和OpenNN,而支持C++的只有7个,提供R接口的只有6个。虽然数据科学家在选择哪种语言的问题上基本已经达成共识,但在深度学习领域,从业人员还是有一些选择余地的。

研究方法

我们通过5个渠道收集了23个最流行的深度学习库,然后根据设计的指标计算出了排名。Github上的打分基于获得的stars和forks,Stack Overflow依据的是涉及的tags和questions,而谷歌搜索则是选取过去5年的搜索结果总数,并按季度计算增长率。

注意事项:

  • 一些库的名称是多义词,如caffe、 chainer、lasagne,所以在谷歌搜索时,这些词结合“深度学习”搜索;

  • 没有Stack Overflow数据的一律为0;

  • 平均值为0,标准差为1,计算Github和Stack Overflow上的平均值获得分数,再结合谷歌搜索结果,最后得到总分。

  • 为确认Github代码库位置,需要进行一些手动筛查。

原始数据:github.com/thedataincubator/data-science-blogs/

点击下方『阅读原文』可查看原网站。

本文系论智编译,转载请联系本公众号获得授权。