38

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

 4 years ago
source link: https://www.infoq.cn/article/Hrzk0oOst_C1WOfV7jlh?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

为了回答这个问题,我查看了 IndeedMonsterLinkedInSimplyHired 上的职位列表数量。 我还评估了 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 的尺度。

2eIVjuY.png!web2IraYvZ.png!web

我不会在本文中探索其他深度学习框架。 我希望我能够收到 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 月的职位列表数量中减去了六个月前的职位列表数量,下面就是我发现的内容:

IFFZZjM.png!webNB7FZrF.png!web TensorFlow 的职位列表增幅略大于 PyTorch, Keras 也显示出了职位列表数的增长 —— 大约是 TensorFlow 的一半,FastAI 仍然没有出现在任何工作列表中。

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

Google 搜索活动的平均变化

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

我统计了过去六个月的平均兴趣分数,并将其与更早的六个月的平均兴趣分数进行了比较。

mEJFfaF.png!web 在过去的六个月中,TensorFlow 的相对搜索量有所下降,而 PyTorch 的相对搜索量却在增长。

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

3I7zIvF.png!web

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

Medium 新文章

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

在过去的六个月里,我统计了在谷歌网站搜索出的 Medium.com 文章数量,发现与 TensorFlow 和 Keras 相关的文章数量差不多,而 PyTorch 则相对较少。

3aiYvae.png!web 作为高级 API,Keras 和 FastAI 受到新的深度学习从业者的欢迎, Medium 有许多教程展示了如何使用这些框架。

arXiv 新文章

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

6VF7va7.png!web TensorFlow 的新文章出现率最高。

新的 GitHub 活动

GitHub 上的近期活动是衡量框架流行度的另一个指标。 我在下面的图表中描绘了 GitHub 点赞 、复制、关注和贡献者的数量。

bmYJZfI.png!web TensorFlow 在每个类别中拥有最多的 GitHub 活动。 然而,PyTorch 在关注和贡献者的增长方面非常接近。 此外,FastAI 也增加了许多新的贡献者。

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

Quora 新粉丝

我新增了 Quora 主题关注者数量 —— 一个我之前没有统计数据的新类别。

VBf2Qva.png!web 在过去六个月中,TensorFlow 主题新增的粉丝数量最多,而 PyTorch 和 Keras 的粉丝增量就少了很多。

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

增长分数计算方法

以下是我计算增长分数的方法:

  1. 把所有特征值缩放至 0 到 1 之间。
  2. 聚合在线职位列表和 GitHub 活动子类别。
  3. 对各个类别根据以下百分比加权。
yEvIRrn.png!web

4. 为了便于理解,各加权分数乘以 100。

5. 将每个框架的类别分数汇总为单个增长分数。

其中,工作列表的权重占总分的三分之一多一点,原因也很俗气,有钱能使鬼推磨。 这种权重系数的划分似乎是在各种类别之间取得了适当的平衡。 与我在 2018 年对各框架能力系数的分析不同,这次我没有包括 KDNuggets 的使用情况调查(没有新数据),也没有包括书籍(六个月内发布的数量不多)。

结果

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

FZJ3uuJ.png!web 下面是各个类别的分数,以及最后汇总的分数:

MB7JvaQ.png!web 下面是最终的增长分数:

Mvaaymr.png!web 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——它们降低了深度学习入门的门槛。本文还带你了解了一点最近的发展和未来方向。

如果你想要以交互方式使用本文中的图表或复制 Jupyter 笔记本,可以访问这里: https://www.kaggle.com/discdiver/2019-deep-learning-framework-growth-scores

希望本文的深度学习框架比较能对你有所帮助。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK