译者 | VK
来源 | Towards Data Science
【磐创AI 导读】:本篇文章介绍了一些深度学习框架,分析了哪种深度学习框架发展最快,希望对大家有所帮助。想要更多电子杂志的机器学习,深度学习资源,大家欢迎点击上方蓝字关注我们的公众号:磐创AI。
在2018年9月,我进行了所有主流深度学习框架中关于需求,使用与普及等方面的比较。TensorFlow无可争议是深度学习框架的重量级冠军,PyTorch是新秀。
在过去六个月中,领先的深度学习框架的情况发生了什么变化?
为了回答这个问题,我查看了Indeed,Monster,LinkedIn和SimplyHired上的职位列表数量。我还评估了Google搜索量^10,GitHub活动,Medium文章^1,ArXiv文章^11和Quora论坛^5主题关注者的变化。总的来说,这些来源描绘了需求,使用和兴趣增长的情况。
集成和更新
我们最近在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表格中^2。我使用了可视化库来探索流行度。对于交互式图表图表,请在此处查看Kaggle Kernel^3。让我们看看每个类别的结果。
工作岗位列表(Job Search Listings)的变化
为了确定在当今的就业市场中需要哪些深度学习库,我在Indeed,LinkedIn,Monster和SimplyHired上搜索了工作岗位列表。
我用术语machine learning搜索,术语紧接着连接库名。所以TensorFlow就是通过machine learning TensorFlow进行评估。使用此方法是因为需要与历史数据比较。没有machine learning的前缀进行搜索没有产生明显不同的结果。职位的搜索区域是美国。
我从2019年3月的职位数量中减去了6个月前的数量。这是我发现的并整理的图标:
TensorFlow的列表增幅略大于PyTorch。Keras也看到了增长,大约是TensorFlow的一半。Fastai仍然没有出现任何的工作岗位列表。
请注意,PyTorch在除了LinkedIn以外的所有求职网站上的新增工作岗位列表的数量都超过了TensorFlow。还请注意,按绝对值计算,TensorFlow出现在工作岗位列表中的数量几乎是PyTorch或Keras的三倍。
Google搜索活动的平均变化
在最大的搜索引擎上进行网络搜索是衡量人气的指标。我查看过去一年Google搜索记录的趋势。我搜索了全世界对机器学习和人工智能类别的兴趣(Google Interest)。Google不提供绝对的搜索数量,但确实提供了相对数量。
我采用了过去六个月的平均兴趣分数,并将其与前六个月的平均兴趣分数进行了比较。
在过去的六个月中,TensorFlow的相对搜索量有所下降,而PyTorch的相对搜索量却在增长。
下面谷歌的图表显示了过去一年的搜索兴趣。
TensorFlow为蓝色; Keras为黄色,PyTorch为红色,fastai为绿色
新的Medium文章(Medium Articles)
Medium论坛^1是数据科学文章和教程的热门论坛。
在过去的六个月里,我使用谷歌搜索了Medium.com,发现TensorFlow和Keras发布了相似数量的文章,PyTorch相对较少。
作为高级API,Keras和fastai受到新的深度学习工作者的欢迎。
新的ArXiv文章(ArXiv Articles)
arXiv是大多数学术深度学习文章发布的在线存储库。我使用Google搜索了arXiv过去六个月的新文章提及的每一个框架。
TensorFlow的新文章出现率最高。
GitHub的活动(Github Activity)
GitHub的活动是框架流行度的另一个指标。我在下面的图表中展示了stars,forks,watchers(观察者)和contributors(贡献者)。
TensorFlow在每个类别中拥有最多的GitHub活动。然而,PyTorch在观察者和贡献者的增长方面非常接近。此外,Fastai看到了许多新的贡献者。
毫无疑问,Keras的一些贡献者在TensorFlow库中进行了研究。值得注意的是,TensorFlow和Keras都是由Google员工带头的开源产品。
Quora的新粉丝( Quora Followers)
我添加了Quora^5的新主题关注者的数量,这是一个我之前没有统计数据的新指标。
TensorFlow在过去六个月中添加了最多的新主题粉丝。PyTorch和Keras每个也都增加了很多。
获得所有数据后,我将其合并为一个指标。
增长分数(Growth Score)
以下是我创建增长分数的方法:
- 缩放所有特征使得数据处于0到1之间的。
- 将工作岗位列表和GitHub活动聚合为一个子类别
- 根据以下百分比加权类别。
- 为了可理解性乘以加权分数100。
- 将每个框架的类别分数相加为单个框架的增长分数。
工作岗位列表占总分的三分之一多一点(钱说了算)。这种划分是各种类别的适当平衡。与我的2018年的分析不同,我没有包括KDNuggets使用情况调查(没有新数据)或书籍的调查(六个月内发布的数量不多)。
结果
以下是表格形式的变化。
Google Sheet 在这里^4。 这是类别和最终得分。
以下是最终的增长分数。
TensorFlow是需求量最大的框架,也是增长最快的。
PyTorch也在迅速发展。它在工作岗位列表中的大量增加证明了其使用和需求的增加。在过去的六个月里,Keras也有了很大的发展。最后,fastai从一个低的速率在增加,但值得记住的是,它在里面是最年轻的框架。
TensorFlow和PyTorch其实都是很好的框架。
学习建议
如果你想学习TensorFlow,我建议你从Keras开始。我推荐Python机器学习^7这本书与Dan Becker的 DataCamp course on Keras教程^8。Tensorflow 2.0通过tf.keras作为其高级API间接使用Keras。 如果你想学习PyTorch,我建议你从fast.ai的MOOC 实践深度学习编码器^9开始,v3。您将学习深度学习基础知识,fastai和PyTorch基础知识。 TensorFlow和PyTorch的未来发展方向是什么?
未来的发展方向
我一直听说人们比TensorFlow更喜欢使用PyTorch。PyTorch更具python化,并且具有更一致的API。它还具有原生的ONNX模型导出,可用于加速推理。此外,PyTorch与numpy共享许多命令,这减少了学习它的障碍。
然而,TensorFlow 2.0完全是为了改进用户体验,正如谷歌首席决策情报工程师Cassie Kozyrkov 在此解释的那样。TensorFlow现在将拥有更直接的API,简化的Keras集成和更快的执行选项。这些变化以及TensorFlow的广泛采用应该有助于该框架在未来几年保持流行。
TensorFlow最近宣布了另一个激动人心的计划:Swift for TensorFlow的开发。Swift是一种最初由Apple构建的编程语言。在执行和开发速度方面,Swift比Python有许多优势。Fast.ai将在其高级MOOC课程中使用Swift进行使用TensorFlow。这门语言可能一两年内都不会在黄金时段出现,但它可能比目前的深度学习框架有所改进。
语言和框架之间的协作和促进肯定正在发生。
影响深度学习框架的另一个进步是量子计算。一台可用的量子计算机可能需要几年的时间,但谷歌,IBM,微软和其他公司正在考虑如何将量子计算与深度学习相结合。框架需要适应这项新技术。
封装
你已经看到TensorFlow和PyTorch的数据都在增长。两者现在都有很好的高级API分别是tf.keras和fast.ai,它们降低了深入学习入门的门槛。
要以交互方式使用本文中的图表或Jupyter Notebook,请前往Kaggle Kernel^6。