2018年深度学习框架势力排行榜!
点击上方关注,All in AI中国
作者:Jeff Hale
深度学习仍然是数据科学中最热门的东西。深度学习框架正在迅速变化。就在五年前,除了Theano公司之外,还没有其他行业领导厂商。
我想找到哪些框架值得关注的证据,所以我创建了这个实力评分榜。Python语言是深度学习的明确领导者,因此我专注于与之兼容的框架。我使用了7个不同类别的11个数据源来衡量框架的使用、兴趣和受欢迎程度。然后我对这个Kaggle内核中的数据进行加权和组合。
不用多说,这里是深度学习框架实力评分表:
虽然TensorFlow是明显的赢家,但其他也有一些令人惊讶的发现。让我们深入了解吧!
竞争者
所有这些框架都是开源的。它们都使用Python,有些可以使用R或其他语言。
TensorFlow是无可争议的重量级冠军。它拥有最多的GitHub活动、谷歌搜索、媒体文章、亚马逊书籍和ArXiv文章。此外,大多数开发人员都在使用它,并列在最前沿的职位描述中。TensorFlow由Google提供支持。
Keras是一个"为人类设计的API,而不是机器。"它是几乎所有评估领域中第二个最受欢迎的框架。Keras名列TensorFlow,Theano或NLTK之列。如果你不熟悉深度学习,请从Keras开始。
PyTorch是第三个最受欢迎的整体框架,也是第二个最受欢迎的独立框架。它比TensorFlow推出要晚一些,但在人气方面迅速增长。它允许TensorFlow不进行自定义。并得到了Facebook的支持。
Theano于2007年在蒙特利尔大学开发,是最早推出的重要Python深度学习框架。它已经失去了很多人气,开发者表示其主要版本不再出现在路线图上。但是会继续进行更新。 Theano仍然经常出现在工作列表中。
MXNET由Apache公司推出的。它已经即将赶超Theano,成为第四个最受欢迎的深度学习库。它有相当数量的贡献者、搜索结果、书籍和学术文章。但是它的使用率从去年开始下降,并没有很多人在寻找它。
CNTK是Microsoft Cognitive Toolkit。它让我想起许多其他微软产品,因为它试图与谷歌和Facebook竞争,并没有获得大量采用。
Fast AI基于PyTorch构建。它的API受到了Keras的启发,可以采用更少的代码来获得强大的结果。截至2018年9月中旬,FastAI正在流行起来。它正在进行重写,计划于2018年10月发布。FastAI公司的Jeremy Howard是Kaggler和Kaggle公司的总裁。他讨论了为什么FastAI从Keras切换到他们自己框架的原因。
http://www.fast.ai/2017/09/08/introducing-pytorch-for-fastai/
人们会问为什么FastAI在这个名单上。它还没有对职业需求,也没有被广泛使用。但是,它通过其流行的免费在线课程拥有庞大的内置用户渠道。它既强大又易于使用。它的采用可能会显著增长。
Caffe被排除在此列表之外,因为它已演变为Caffe2,然后Caffe2于2018年3月合并到PyTorch中。
标准
我选择了以下类别来提供全面的深度学习框架中的受欢迎程度和兴趣。
其评估类别是:
- 在线职位列表
- KDnuggets使用情况调查
- Google搜索量
- 媒体文章
- 亚马逊书籍
- ArXiv文章
- GitHub活动
其搜索是在2018年9月16日进行的。源数据在这个Google表格中。
https://docs.google.com/spreadsheets/d/1mYfHMZfuXGpZ0ggBVDot3SJMU-VsCsEGceEL8xd1QBo/edit?usp=sharing
我使用了plotly数据可视化库和Python的pandas库来探索流行度。对于交互式图表,请在此处查看我的Kaggle Kernel。
https://www.kaggle.com/discdiver/deep-learning-framework-power-scores-2018
在线职位列表
当今的就业市场需要哪些深度学习库?我搜索了LinkedIn、Indeed、Simply Hired、Monster和Angel List上的职位列表。
当涉及到工作列表中提到的框架时,TensorFlow是明显的赢家。如果你希望获得一份深度学习的工作,那就去学习吧。
我使用机器学习的术语搜索,然后是库名称进行搜索。因此,TensorFlow通过机器学习TensorFlow进行评估。我测试了几种搜索方法,并且给出了最相关的结果。
为了区分这个框架与无关的术语,还需要一个额外的关键字,因为我最初计划将Caffe库包括在这个分析中。
KDnuggets使用情况
KDnuggets是一个受欢迎的数据科学网站,并对全世界的数据科学家所使用过的软件进行了调查。他们提出了这个问题:你在过去12个月中为实际项目使用了哪些分,大数据、数据科学、机器学习软件?
下面是这个问题的问题。
Keras显示出惊人的使用量,几乎与TensorFlow一样多。有趣的是,美国雇主绝大多数都在寻找具有TensorFlow技能的应聘人员,而至少在国际上,Keras的使用频率非常高。
该类别是唯一包含国际数据的类别,因为将其他类别的国际数据包括在内是很麻烦的。
KDnuggets报告了几年的数据。虽然我在此分析中仅使用了2018年的数据,但我应该注意到Theano、MXNET和CNTK自2017年以来的使用量下降。
Google搜索活动
在全球最大的搜索引擎进行网络搜索是衡量人气的一个很好的指标。我查看过去一年Google趋势中的搜索记录。谷歌没有提供绝对精确的搜索结果,但确实提供了相对数据。
截至2018年9月15日之前的一周,TensorFlow稳定在78%,.PyTorch正在接近Keras。同时其他框架的相对搜索量分数等于或低于3。这些分数用于此类别的实力评分。
让我们简要介绍一下搜索量随时间的变化情况,以提供更多的历史背景。下面谷歌的图表显示了过去两年的搜索结果。
TensorFlow =蓝色,Keras =红色,PyTorch =黄色,Theano =绿色
TensorFlow、Keras和PyTorch搜索在2016年末和2017年都迅速增长。有趣的是,过去几个月没有一个增长迅速。我们可能会看到一些季节性因素,夏季和冬季假期会有所下降。
Google趋势只允许同时比较五个术语,因此其他库在单独的图表上进行比较。除了与TensorFlow相关的最小搜索兴趣之外,其他的库都没有显示任何其他内容。
所有这些结果都是针对美国的搜索结果。虽然搜索术语Theano和Keras有其他含义,但在古希腊语的课程之外,在美国很少使用。
出版物
我在权力排名中包含了几种发布类型。较旧的库有一个优势,有更多的时间来累积它们的出版物。未来的实力评分将侧重于出版物数量的变化。
我们先来看看媒体文章。
媒体文章
媒体是流行的数据科学文章和指南的地方。如果你是在这个地方,那真的很棒!
最后一个新的赢家。在媒体文章中提及,Keras超越了TensorFlow之前采用的磁带,这几乎是采用照片完成。 FastAI的表现优于其通常的表现。
我假设这些结果可能已经发生,因为Keras和FastAI是初学者友好的。他们对新的深度学习从业者有很大兴趣,而媒体通常是教程的论坛。
现在让我们来看看哪些框架在亚马逊网站上具有关于它们的书籍。
亚马逊书籍
我在Amazon.com的Books-> Computer Science下搜索了每个深度学习框架。
TensorFlow再次获胜。 MXNET的书籍数量超出预期,Theano的书籍数量减少了。 PyTorch的书籍相对较少,但这可能是因为该框架推出较晚。由于发布图书所需的时间,这一措施偏向于旧库。
也许Theano将会有更多的学术文章。
ArXiv中的文章
ArXiv是大多数学术机器学习文章发布的在线存储库。我在ArXiv网站上搜索了每个框架。
更多的是来自TensorFlow的学术文章。这里最大的惊喜可能是没有更多关于这些框架的文章。请注意,Keras在媒体和亚马逊上的受欢迎程度远远高于学术文章。鉴于其推出的时间,Theano在这个领域表现不佳。
GitHub活动
GitHub上的活动是衡量框架流行度的另一个指标。我采用主导者(stars)、追随者(forks)、观察者(watchers)和贡献者(contributors)进行划分,因为他们分开比组合更有意义。
TensorFlow显然是GitHub上最受欢迎的框架,拥有大量参与用户。考虑到Fast AI甚至还不到一年,但它有一个不错的追随者。有趣的是,与其他三个指标相比,所有框架的贡献者级别更接近。
收集并分析数据后,是将其合并为一个指标的时候了。
实力评分程序
以下是我创建实力评分的方法:
1.缩放0到1之间的所有特征。
2.聚合的职位搜索列表和GitHub活动子类别。
3.加权类别根据下面的权重。
如上所示,在线职位列表和KDnuggets使用情况调查占总分的一半,而网络搜索、出版物和GitHub注意力构成部分另一半。这种分裂似乎是各种类别中最合适的平衡。
4.为了便于理解,将加权分数乘以100。
5.将每个框架的类别分数总计为单个权力分数。
这是原始数据:
Google Sheet可在此处获得。
以下是加权和聚合子类别后的分数。
Jupyter记事本可在此Kaggle内核中使用。
这是漂亮的图表再次显示最终的实力评分。
100是最高评分,表示每个类别中的第一名。TensorFlow几乎达到了100,这在每个类别的顶部或附近看到这个评分并不奇怪。
要以交互方式使用图表或分叉Jupyter记事本,请前往查看Kaggle内核。
https://www.kaggle.com/discdiver/deep-learning-framework-power-scores-2018未来
目前,TensorFlow一直处于领先地位。它似乎可能在短期内继续占据主导地位。考虑到事物在深度学习世界中的移动速度有多快,这可能会发生变化。
时间会告诉PyTorch是否超过了TensorFlow,因为React超越了Angular。它们框架可能类似。PyTorch和React都是由Facebook支持的灵活框架,通常被认为比谷歌支持的竞争对手更容易使用。
FastAI会在课程之外获得用户吗?它有一大批学生用户,比Keras更容易使用API。
对学习者的建议
如果你正在考虑学习其中一个框架并拥有Python、numpy、pandas、sklearn和matplotlib技能,我建议你从Keras开始。它拥有庞大的用户群,受到企业雇主的青睐,媒体有很多相关文章,并且有一个易于使用的API。
如果你已经了解Keras,那么决定下一个要学习的框架可能会很棘手。我建议你选择TensorFlow或PyTorch并学习它,这样你就可以制作出色的深度学习模型。
如果你想掌握需求,TensorFlow显然是学习的框架。但PyTorch的易用性和灵活性使其使用起来更加友好。
一旦你掌握了这些框架,我建议你留意FastAI。如果你想学习基础和高级深度学习技巧,请查看其免费在线课程。FastAI 1.0承诺允许你轻松实现最新的深度学习策略并快速迭代。
http://course.fast.ai/
无论你选择哪个框架,我希望你现在能够更好地了解哪些深度学习框架最受欢迎、最常用、最适用。