哪种深度学习框架发展最快?
点击上方关注,All in AI中国
在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表格中。
我使用了绘图数据可视化库来探索流行度。对于交互式情节图表,请在此处查看我的Kaggle Kernel。2019 Deep Learning Framework Growth Scores | Kaggle
让我们看看每个类别的结果。
更改在线职位列表
为了确定在当今的就业市场中需要哪些深度学习库,我在Indeed、LinkedIn、Monster和SimplyHired上搜索了工作列表。
我搜索了机器学习这个词,然后是库名。所以TensorFlow通过机器学习TensorFlow进行评估。由于历史比较的原因,没有机器学习的搜索不会产生明显不同的结果。搜索区域是美国。
我从2019年3月的列表数量中减去了六个月前的列表数量。以下是我的发现:
TensorFlow的列表增幅略大于PyTorch。 Keras也看到了列表数量增长 - 大约是TensorFlow的一半。 Fastai仍然没有显示任何工作列表。
请注意,除了LinkedIn之外,PyTorch在除了TensorFlow之外的所有求职网站上都有更多的附加列表。另请注意,从绝对意义上讲,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的活动是框架流行度的另一个指标。我在下面的图表中打破了星,叉,观察者和贡献者。
TensorFlow在每个类别中拥有最多的GitHub活动。然而,PyTorch在观察者和贡献者的增长方面非常接近。此外,Fastai上看到了许多新的贡献者。
Keras的一些贡献者在TensorFlow库中进行了研究。值得注意的是,TensorFlow和Keras都是由Google员工带头开发的开源产品。
新Quora的追随者
我添加了新的Quora主题关注者的数量 - 一个我之前没有数据的新类别。
TensorFlow在过去六个月中添加了最多的新主题粉丝。 PyTorch和Keras每个都增加了很多。
获得所有数据后,我将其合并为一个度量标准。
分数增长的过程
以下是我创建增长分数的方法:
- 扩展0到1之间的所有特性。
- 聚合在线职位列表和GitHub活动子类别。
- 根据以下百分比加权类别。
- 乘以可理解性的加权分数100
- 将每个框架的类别分数总计为单个增长分数。
工作列表占总分的三分之一多一点。这种分裂似乎是一个合适的平衡的各种类别。与我的2018年功率分数分析不同,我没有包括KDNuggets使用情况调查(没有新数据)或书籍(六个月内发布的数量不多)。
结果
以下是表格形式的变化。
Google Sheet在这里
这是类别和最终得分
以下是最终的增长分数。
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,我建议你从fast.ai的MOOC实践深度学习编码器开始,v3。您将学习深度学习基础知识、fastai和PyTorch基础知识。
TensorFlow和PyTorch的未来发展方向是什么?
未来发展方向
我一直听说人们更喜欢使用PyTorch而不是TensorFlow。 PyTorch更具python化,并且具有更一致的API。它还具有原生的ONNX模型导出,可用于加速推理。此外,PyTorch与numpy共享许多命令,这减少了学习它的障碍。
然而,TensorFlow 2.0完全是为了改进用户体验,正如谷歌首席决策情报工程师Cassie Kozyrkov在此解释的那样。 TensorFlow现在将拥有一个更直接的API、简化的Keras集成和急切的执行选项。这些变化以及TensorFlow的广泛采用,应该有助于该框架在未来几年保持流行。
TensorFlow最近宣布了另一个激动人心的计划:为TensorFlow开发Swift。 Swift是一种最初由Apple构建的编程语言。在执行和开发速度方面,Swift比Python有许多优势。 Fast.ai将在部分高级MOOC中使用Swift for TensorFlow。这门语言可能一两年内都不会在黄金时段出现,但它可能比目前的深度学习框架有所改进。
语言和框架之间的协作和交叉授粉肯定已经正在发生了。
影响深度学习框架的另一个进步是量子计算。一台可用的量子计算机可能需要几年的时间,但谷歌、IBM、微软和其他公司正在考虑如何将量子计算与深度学习相结合。需要调整框架以适应这种新技术。
总结
你已经看到TensorFlow和PyTorch都在增长。两者现在都有很好的高级API。tf.keras和fastai降低了深度学习入门的障碍。您还听说了一些最近的发展和未来方向。
要以交互方式使用本文中的图表或或者使用Jupyter笔记本。
编译出品