内容简介:深度学习框架的流行趋势正在快速变化,其中最受瞩目的莫过于 TensorFlow 和 PyTorch。前段时间,TensorFlow 发布了 2.0(Alpha)版本,不仅推出了许多新功能,也通过引入 Keras 高级 API 和 EagerExecution 模式让入门门槛进一步降低。但是这些改变并没有减慢 PyTorch 追赶的步伐。在今天这篇文章中,本文作者通过 GitHub、Medium 文章、arXiv 论文和 LinkedIn 等多个维度评估了这两款深度学习框架的最新发展趋势。2018 年 9 月
深度学习框架的流行趋势正在快速变化,其中最受瞩目的莫过于 TensorFlow 和 PyTorch。前段时间,TensorFlow 发布了 2.0(Alpha)版本,不仅推出了许多新功能,也通过引入 Keras 高级 API 和 EagerExecution 模式让入门门槛进一步降低。但是这些改变并没有减慢 PyTorch 追赶的步伐。在今天这篇文章中,本文作者通过 GitHub、Medium 文章、arXiv 论文和 LinkedIn 等多个维度评估了这两款深度学习框架的最新发展趋势。
2018 年 9 月,我在 这篇文章 中从市场需求、使用和受欢迎程度三方面比较了所有主要的深度学习框架。 其中,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 的相对搜索量却在增长。
下面这个来自谷歌的图表显示了过去一年各个框架的搜索兴趣。
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 的粉丝增量就少了很多。
获得所有数据后,我将其合并为一个度量指标。
增长分数计算方法
以下是我计算增长分数的方法:
- 把所有特征值缩放至 0 到 1 之间。
- 聚合在线职位列表和 GitHub 活动子类别。
- 对各个类别根据以下百分比加权。
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
希望本文的深度学习框架比较能对你有所帮助。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 深度解析Python深度学习框架的对比
- 深度学习框架的前世今生
- 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
- 三种 JavaScript 深度学习框架介绍
- 深度:从零编写一个微前端框架
- 深度:从零编写一个微前端框架
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Effective C++
[美]Scott Meyers / 侯捷 / 电子工业出版社 / 2006-7 / 58.00元
《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)......一起来看看 《Effective C++》 这本书的介绍吧!