查看原文
其他

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

AI前线小组 AI前线 2019-05-11

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

更多干货内容请关注微信公众号“AI 前线”(ID:ai-front)

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 月的职位列表数量中减去了六个月前的职位列表数量,下面就是我发现的内容:

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

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

Google 搜索活动的平均变化

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

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

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

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

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

Medium 新文章

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

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

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

arXiv 新文章

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

TensorFlow 的新文章出现率最高。

新的 GitHub 活动

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

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

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

Quora 新粉丝

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

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

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

增长分数计算方法

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

  1. 把所有特征值缩放至 0 到 1 之间。

  2. 聚合在线职位列表和 GitHub 活动子类别。

  3. 对各个类别根据以下百分比加权。

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

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

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

结    果

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

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

下面是最终的增长分数:

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

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

原文链接:

https://towardsdatascience.com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318

今日荐文

点击下方图片即可阅读

一张主流编程语言变迁图,讲清程序员迁移模式

福利时间

为了感谢大家一直以来的关注,线线为大家申请了 AICon (门票 4800 的全球人工智能与机器学习技术大会的视频)VIP 观看权限。公众号后台对话框回复关键词“福利 ”,即可获取。  


你也「在看」吗?👇

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存