PyTorch杠上TensorFlow:谁才是增长最快的深度学习框架?

深度学习框架的流行趋势正在快速变化,其中最受瞩目的莫过于 TensorFlow 和 PyTorch。前段时间,TensorFlow 发布了 2.0(Alpha)版本,不仅推出了许多新功能,也通过引入 Keras 高级 API 和 EagerExecution 模式让入门门槛进一步降低。但是这些改变并没有减慢 PyTorch 追赶的步伐。在今天这篇文章中,本文作者通过 GitHub、Medium 文章、arXiv 论文和 LinkedIn 等多个维度评估了这两款深度学习框架的最新发展趋势。 

2018 年 9 月,我在这篇文章(https://towardsdatascience.com/deep-learning-framework-power-scores-2018-23607ddf297a)中从市场需求、使用和受欢迎程度三方面比较了所有主要的深度学习框架。 其中,TensorFlow 是深度学习框架中无可争议的重量级冠军,PyTorch 则是引发了热烈讨论的年轻新秀。

在过去六个月中,这些领先的深度学习框架又有什么变化呢?

为了回答这个问题,我查看了 Indeed、Monster、LinkedIn 和 SimplyHired 上的职位列表数量。 我还评估了 Google 搜索量、GitHub 活动、 Medium 文章、ArXiv 文章和 Quora 主题关注者 的变化。 总的来说,这些资料来源描绘了市场需求、使用和兴趣增长的全面情况。

集成和更新

我们最近在 TensorFlow 和 PyTorch 框架中看到了几个重要的进展。

PyTorch v1.0 于 2018 年 10 月发布,同时 FastAI v1.0 发布。 这两个版本的发布都是重要的里程碑,标志着深度学习框架趋于成熟。

TensorFlow 2.0 alpha 于 2019 年 3 月 4 日发布,它增加了新的功能并改善了用户体验,并且更加紧密地集成了 Keras 作为其高级 API。

方法论

在本文中,我将 Keras 和 FastAI 包含在比较中,因为它们与 TensorFlow 和 PyTorch 紧密集成,并且还提供了评估 TensorFlow 和 PyTorch 的尺度。

我不会在本文中探索其他深度学习框架。 我希望我能够收到 Caffe、Theano、MXNET、CNTK、DeepLearning4J 或 Chainer 等值得讨论的反馈。 虽然这些框架各有其优点,但似乎没有一个框架显示出其可以媲美 TensorFlow 或 PyTorch,并且它们也没有与这两个框架紧密结合。

搜索在 2019 年 3 月 20 日至 21 日进行。源数据在此 Google 表格 中。

我使用了 plotly 数据可视化库来探索流行度,对于交互式 plotly 图表,请在 此处 查看我的 Kaggle Kernel。
让我们看看每个类别的结果。

在线职位列表的变化

为了确定在当今的就业市场中需要哪些深度学习库,我在 Indeed、LinkedIn、Monster 和 SimplyHired 上搜索了工作列表。

我同时搜索了关键词”机器学习“和深度学习框架名,比如,TensorFlow 通过”机器学习 TensorFlow“搜索关键词进行评估。 用此方法是出于与历史比较的原因。 不加关键词”机器学习“的搜索没有产生明显不同的结果。 搜索区域是美国。

我从 2019 年 3 月的职位列表数量中减去了六个月前的职位列表数量,下面就是我发现的内容:
2f0cf34e640ff25284036_5.png
TensorFlow 的职位列表增幅略大于 PyTorch, Keras 也显示出了职位列表数的增长 —— 大约是 TensorFlow 的一半,FastAI 仍然没有出现在任何工作列表中。

请注意,除了 LinkedIn 之外,PyTorch 在其他所有求职网站上都有更多的额外岗位列表。 另外,从绝对数量上讲,TensorFlow 的工作列表数量几乎是 PyTorch 或 Keras 的三倍。

Google 搜索活动的平均变化

在大型搜索引擎上进行网络搜索的行为是衡量人气的指标。 我查看了过去一年 Google 趋势中的搜索记录。 我在世界范围内搜索了对机器学习和人工智能类别的兴趣。 Google 不提供绝对搜索数字,但确实提供了相对数据。

我统计了过去六个月的平均兴趣分数,并将其与更早的六个月的平均兴趣分数进行了比较。
2f0cf34e640ff25284036_6.png
在过去的六个月中,TensorFlow 的相对搜索量有所下降,而 PyTorch 的相对搜索量却在增长。

下面这个来自谷歌的图表显示了过去一年各个框架的搜索兴趣。

(蓝色表示 TensorFlow;黄色表示 Keras;红色表示 PyTorch;绿色表示 FastAI)

Medium 新文章

Medium 是数据科学文章和教程的热门聚集地。 我希望你会喜欢它!

在过去的六个月里,我统计了在谷歌网站搜索出的 Medium.com 文章数量,发现与 TensorFlow 和 Keras 相关的文章数量差不多,而 PyTorch 则相对较少。
2f0cf34e640ff25284036_8.png
作为高级 API,Keras 和 FastAI 受到新的深度学习从业者的欢迎, Medium 有许多教程展示了如何使用这些框架。

arXiv 新文章

arXiv 是一个在线存储库,大多数深度学习学术文章都发布在此。 我用 Google 搜索了在过去六个月里在 arXiv 上提及各个框架的新文章 。

2f0cf34e640ff25284036_9.png
TensorFlow 的新文章出现率最高。

新的 GitHub 活动

GitHub 上的近期活动是衡量框架流行度的另一个指标。 我在下面的图表中描绘了 GitHub 点赞 、复制、关注和贡献者的数量。
2f0cf34e640ff25284036_10.png
TensorFlow 在每个类别中拥有最多的 GitHub 活动。 然而,PyTorch 在关注和贡献者的增长方面非常接近。 此外,FastAI 也增加了许多新的贡献者。

毫无疑问,Keras 的一些贡献者对 TensorFlow 库也进行了研究。 值得注意的是,TensorFlow 和 Keras 都是由 Google 员工负责的开源产品。

Quora 新粉丝

我新增了 Quora 主题关注者数量 —— 一个我之前没有统计数据的新类别。
2f0cf34e640ff25284036_11.png
在过去六个月中,TensorFlow 主题新增的粉丝数量最多,而 PyTorch 和 Keras 的粉丝增量就少了很多。

获得所有数据后,我将其合并为一个度量指标。

增长分数计算方法

以下是我计算增长分数的方法:
  1. 把所有特征值缩放至 0 到 1 之间。
  2.  
  3. 聚合在线职位列表和 GitHub 活动子类别。
  4.  
  5. 对各个类别根据以下百分比加权。2f0cf34e640ff25284036_12.png
  6. 为了便于理解,各加权分数乘以 100。
  7.  
  8. 将每个框架的类别分数汇总为单个增长分数。
其中,工作列表的权重占总分的三分之一多一点,原因也很俗气,有钱能使鬼推磨。 这种权重系数的划分似乎是在各种类别之间取得了适当的平衡。 与我在 2018 年对各框架能力系数的分析不同,这次我没有包括 KDNuggets 的使用情况调查(没有新数据),也没有包括书籍(六个月内发布的数量不多)。

结果

下面的表格中列出了四种主流框架在各个类目上的变化情况:

下面是各个类别的分数,以及最后汇总的分数:

下面是最终的增长分数:
2f0cf34e640ff25284036_15.png
TensorFlow 是市场需求最多,也是增长最快的框架,它的领先地位不会在短期内被颠覆。 PyTorch 也在迅速发展,它在工作列表中的大量增加证明了其使用和需求的增加。在过去的六个月里,Keras 也有了很大的发展。最后,值得注意的是,FastAI 是从较小的基数开始发展的,它是最年轻的深度学习框架。

TensorFlow 和 PyTorch 都是很好的值得学习的框架。

学习建议

如果你想学习 TensorFlow,我建议你从 Keras 开始。我推荐 Chollet 的 Python 深度学习 和 Dan Becker 关于 Keras 的 DataCamp 课程。 Tensorflow 2.0 通过 tf.keras 使用 Keras 作为其高级 API。这里有 Chollet 对 TensorFlow 2.0 的快速入门介绍。

如果你想学习 PyTorch,我建议你从 FastAI 的 MOOC 实践深度学习编码 (v3) 开始,学习深度学习基础知识、FastAI 和 PyTorch 的基础知识。

TensorFlow 和 PyTorch 的未来发展方向是什么?

未来发展方向

我一直听说,与 TensorFlow 相比,人们更喜欢使用 PyTorch。 PyTorch 更具 pythonic,并且具有更一致的 API,它还具有原生的 ONNX 模型导出,可用于加速推理。此外,PyTorch 与 numpy 共享许多命令,这减少了学习它的障碍。

然而,TensorFlow 2.0 完全是为了改进用户体验,正如谷歌首席决策情报工程师 Cassie Kozyrkov 在此解释的那样。 TensorFlow 现在将拥有更直接的 API、简化的 Keras 集成和 eager execution 选项。这些变化以及 TensorFlow 的广泛采用应该有助于该框架在未来几年保持流行。

TensorFlow 最近宣布了另一个激动人心的计划:Swift for TensorFlow 的开发。 Swift 是一种最初由 Apple 构建的编程语言,在执行和开发速度方面,Swift 比 Python 有许多优势。 FastAI 将在部分高级 MOOC 中使用 Swift for TensorFlow ——请参阅 FastAI 联合创始人 Jeremy Howard 关于此主题的帖子。这种语言可能不会在一年或两年内进入黄金时间,但它可能是对当前深度学习框架非常有用的改进。

语言和框架之间的协作和交叉授粉肯定正在发生。

影响深度学习框架的另一个进步是量子计算。一台可用的量子计算机可能还需要几年的时间才会出现,但谷歌、IBM、微软和其他公司正在考虑如何将量子计算与深度学习相结合。各类框架需要适应这项新技术。

总结

目前来看,TensorFlow 和 PyTorch 都在快速增长, 两者现在都有很好的高级 API —— tf.keras 和 FastAI——它们降低了深度学习入门的门槛。本文还带你了解了一点最近的发展和未来方向。

来源 | AI前线
策划|Natalie
作者|Jeff Hale
译者|杨旭东
编辑|Debra

上一篇:2019全球智博会今日开幕,AI行业精彩看不停!
下一篇:数学 + 统计 + 脑科学 = 破解 AI “黑盒子” 的密匙?