- 原文地址:Which Deep Learning Framework is Growing Fastest?
- 原文做者:Jeff Hale
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:ccJia
- 校对者:luochen1992, zhmhhu
在 2018 年的 9 月,我在一篇文章中,从需求量,工程使用量以及流行程度等方面对比了全部的主流深度学习框架。TensorFlow 处于绝对的王者地位,而 Pytorch 则是一位跃跃欲试的年轻挑战者。前端
半年过去了,这种形势是否有所改变呢?python
为了回答这个问题,我从在线招聘网站(如:Indeed、Monster、LinkedIn 和 SimplyHired) 的职位需求、谷歌的搜索量、GitHub 活跃度、媒体的文章数、ArXiv 的文章数以及Quora 的粉丝数等几个方面的数据变化去作评估。最终,以这些数据为依据,绘制了需求量,使用率和流行程度的增加图便于读者理解。android
咱们发现,TensorFlow 和 PyTorch 都有一些重要的版本发布。ios
PyTorch 1.0 版本在 2018 年 10 月预先发布,同一时间 fastai 1.0 版本也进行了发布。这两个版本的发布是深度学习框架走向成熟的重要里程碑。git
2019 年 4 月,TensorFlow 2.0 alpha 版也进行了发布。在新增了许多新特性的同时,改进了用户的体验。而且更加紧密地集成了 Keras 做为它的高级 API。github
在本文中,因为 Keras 和 fastai 与 TesnsorFlow 和 PyTorch 的依存关系,它们也能够做为一个尺度来评估 TensorFlow 和 PyTorch,因此咱们将它们也囊括到了对比之中。编程
至于其余的深度学习框架,我将不予讨论。不少读者确定会以为像 Caffe、Theano、MXNET、CNTK、DeepLearning4J 和 Chainer 这些框架是颇有价值的。然而它们虽然有诸多的优势,但确实没法与 TensorFlow 和 Pytorch 相提并论,同时又和这两个框架没有什么交集。swift
咱们的分析工做是在 2019 年 3 月 20 号到 21 号间执行的,数据源在 谷歌的表格中。后端
我使用 plotly 做为可视化库,更多的细节能够参考个人 Kaggle Kernel。app
好,如今咱们就来看看各个分类的结果如何。
我经过搜索几个主要的在线招聘网站,如,Indeed、LinkedIn、Monster 和 SimplyHired 的相关数据来判断哪个框架是目前需求量最大的。
我使用的搜索关键字是这样的,machine learning ,后面跟随对应的库名。举个例子,评估 TensorFlow 咱们使用的关键字就是 machine learning TensorFlow 。因为历史的比较缘由,使用了这种关键字进行搜索。若是不加 machine learning 结果也不会有明显的不一样。咱们的搜索范围设定的是美国。
我用2019年3月的数据减去6个月以前的数据,有以下的发现:
在职位列表中,TensorFlow 的增加略微高于 PyTorch。Keras 也有增加,大体是 TensorFlow 的一半。Fastai 仍然是没有什么需求量。
值得注意的是除了 LinkedIn 之外,在其余的求职网站上 PyTorch 相较于 TensorFlow 都有明显的增加。可是在绝对的数量上,TensorFlow 的职位数量接近PyTorch 或者 Keras 的 3 倍。
在最大搜索引擎上的搜索次数能够做为衡量流行程度的一个指标。我在 Google Trends 上搜集了过去一年全世界范围内关于 Machine Learning and Artificial Intelligence 分类的搜索。不幸的是谷歌不提供绝对的数值,只能得到一组相对值。
我获得了过去 6 个月兴趣分数的均值并与半年之前的兴趣均值作比较。
在过去 6 个月中,TensorFlow 的相关搜索量在降低,而 PyTorch 的相关搜索量在上升。
下面的图表直观的反映了过去 1 年人们的兴趣趋势。
新媒体是数据科学文章和教程的主要传播场所,我但愿你会喜欢它。我利用 Medium.com 做为筛选项在谷歌上进行搜索,在过去的 6 个月中,TensorFlow 和 Keras 的文章发表数基本类似,而 PyTorch 的要稍微少一些。
做为高级 API 的 Keras 和 fastai 在新框架的实践者中十分流行,有不少教程都是在向人们展现如何很好的使用这些新框架。
arXiv 是当前大多数深度学习学术论文选择发表的在线仓储。我使用谷歌搜索了过去 6 个月新发表的新论文中提到的框架,结果是 TensorFlow 遥遥领先。
Git 的近期活跃度是框架流行度的另外一个指标。下面的图表展现了点赞、克隆、粉丝以及贡献者的数量。
TensorFlow 在各个选项上都是领先的。尽管如此,PyTorch 在关注者和贡献者方面已经十分接近 TensorFlow 了,同时 fastai 也出现了不少新的贡献者。
毫无疑问,一些 Keras 的贡献者还在努力的挖掘 TensorFlow 库。同时值得注意的是,这两个开源项目都是由谷歌的员工发起的。
我将以前遗漏的一个参考指标 —— Quora 新话题的粉丝数量也加入进来。
过去 6 个月中,绝大多数新增话题的粉丝都是围绕着 TensorFlow,而 PyTorch 和 Keras 则远远落后。
一旦我有了全部的数据,我将把它们整理成一个新的指标。
下面是我如何建立增加分数的:
将全部指标的分数缩放到 0 和 1 之间。
汇总 在线职位 和 GitHub 活跃度 等子类。
根据下面的百分比对各个分类加权。
为了方便理解,咱们再将全部得分乘以 100。
将每一个框架的对应分类的得分进行累加,获得最后的增加分数。
在线工做一项的权重占据了总体的三分之一,缘由很简单,直接的经济利益才是最实际的。这种划分也是为了更好的平衡各个选项。区别于个人另外一篇 2018 power score analysis ,我没有包含 KDNuggets 的使用状况调查(没有新的数据)和出版物(过去 6 个月没有太多的新书)。
下面是表格的形式:
这里是各个分类的得分:
这里是最终的得分:
TensorFlow 是目前需求量最大且增加速度最快的框架,短期内,这个局面不会发生变化。PyTorch 的增加也十分迅猛,大量的职位需求就是它需求量和使用量增加的最好证实。固然,Keras在过去的6个月也有长足的进步。最后,fastai 的增加就不那么的理想了,可是须要说明的是,它是这几个框架中最年轻的一个。 因此,TensorFlow 和 PyTorch 都是十分值得学习的框架。
若是你准备学习 TensorFlow ,那么我建议你能够先从 Keras 开始。Chollet 的 Deep Learning with Python 和 Dan Becker 的 DataCamp course on Keras 是两本很好的入门教材。在 TensorFlow 2.0 中使用 Keras 做为高级 API 只须要经过 tf.keras 就能够调用。这里有一个 Chollet 写的 TensorFlow 2.0 快速入门 教程。
若是你准备学习 PyTorch,我建议能够从 fast.ai 的 MOOC 文章 Practical Deep Learning for Coders, v3 开始。你能够学习到深度学习的原理以及 fastai、PyTorch 的基础。
那么,TensorFlow 和 PyTorch 的将来是什么呢?
我常听人说,PyTorch 比 TensorFlow 更好用。这是由于 PyTorch 有更稳定的 API 而且更贴近 Python 的用法。同时还有原生的模型转换工具 ONNX,能够用来提升推理的速度。而且,Pytorch 共用了许多 numpy 的命令,能够下降学习的门槛。
对于 TensorFlow 2.0 的全部改进都是针对于用户体验这点,谷歌的首席人工智能决策官 Cassie Kozyrkov 有以下的 解释。TensorFlow 如今有更直观的API,更合理的 Keras 集成,以及更直接的执行选项。这些改变以及 TensorFlow 的普遍使用,都将帮助它在将来几年继续流行。
此外,TensorFlow 最近公布了一项使人激动的计划:开发针对于 Swift的TensorFlow版本。Swift 最初是由苹果公司构建的编程语言。相较于 Python,Swift 在执行和开发速度上有不少的优点。fast.ai 的联合创始人 Jeremy Howard 发布的 消息,fast.ai 将在部分的进阶 MOOC 中使用 TensorFLow的Swift版本。这个语言可能在最近的一两年不会完成,可是它必定会改进现存的深度学习框架。能够看到,语言和框架之间的合做和交叉学习正在进行着。
量子计算 的进步也将影响深度学习框架。虽然可用的量子计算机还须要几年才能出现,可是 Google、IBM、Microsoft 和其余的公司已经在思考如何将量子计算和深度学习结合起来了。框架须要去慢慢适应这种新的技术。
你已经看到了 TensorFLow 和 PyTorch 的增加。它们都有很好的高级 API:tf.keras 和 fastai,它们能够下降初学者的学习门槛。你也已经看到了框架的新特性和将来方向。
若是须要使用文中的图表,能够到个人 Kaggle Kernel 中去获取相关内容。
我但愿你能够从这个对比中获取帮助。若是确实有帮助,就请你把它分享到你喜欢的社交频道,这样就可使更多的人获益。
谢谢你们浏览!
若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。