来源:Medium
转载自:新智元,未经允许不得二次转载
【导读】TensorFlow和PyTorch,谁才是王者?本文详细的从多个角度对TensorFlow和PyTorch进行了对比,以求找出二者在接下来的时间里,哪个会成为最有话语权的深度学习框架。
TensorFlow是毫无争议的深度学习框架重量级冠军,而PyTorch是年轻的后起之秀,赢的了不少人的青睐。
最近TensorFlow在3月4日发布了2.0公测版,增加了新功能。改善了用户体验,更加紧密地集成了Keras作为其高级API。这一版本和1.x相比,改动相当大,以至于你需要迁移代码库。Google自己也一样需要做同样的事情,所以他们特意出了一套官方的迁移指南,甚至还开发了工具来帮助简化迁移代码的工作量。听起来真是让人头秃。
PyTorch v1.0和fastai v1.0都是在2018年10月发布的,这两个版本标志着框架成熟的重要里程碑。Facebook也刚刚开源了大规模图嵌入系统PyTorch-BigGraph,而且因为TensorFlow有些激进的升级,导致给PyTorch送了一波新粉丝。
所以2019年,到底TensorFlow能够继续稳坐冠军宝座,或是被PyTorch超越?为了找出这个问题的答案,数据科学家、Rebel Desk的COO、Medium优秀作者Jeff Hale查看了Indeed Monster、LinkedIn和SimplyHired上的职位列表数量、评估了Google搜索量、GitHub活跃度,Medium文章、ArXiv论文和Quora主题关注者的变化,从多个维度对二者进行了对比,可以说是非常具有说服力了。
从在线职位列表变化进行对比
岗位需求最直接的表现了市场对某种框架的需求程度。为了确定在当今的就业市场中需要哪些深度学习库,Jeff在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上面关于TensorFlow和PyTorch文章的数量也能够体现学者和开发者以及科技媒体对二者的关注度。
在过去的六个月里,Medium上TensorFlow和Keras有关的文章数量相当,而PyTorch相对较少。
作为高级API,Keras和fastai受到新的深度学习从业者的欢迎。 新增了很多相关的教程。
从新增的arXiv文章进行对比
arXiv是大多数学术深度学习文章的在线存储库,代表了学术风向标。在arXiv中,过去六个月TensorFlow的新文章出现率最高,
从GitHub活跃度进行对比
如果说arXiv代表了学术风向标,那么Github无疑就是代表了开发者的风向标。最近关于GitHub的活动是框架流行度的另一个指标。
从上图可以看出,TensorFlow在star、fork、watch和贡献者4个方面活跃度均是最高,然而PyTorch在watch数和贡献者的增长方面非常接近。相对于star来说,watch更能体现开发者对一个项目的关注度。Watch相当于follow或者订阅,意味着这个项目对开发者来说具有比较重大的意义。而star类似点赞,仅仅表达了用户对该项目的好感。
值得注意的是,Fastai最近的贡献者数量在增加。
从Quora上的新增关注数来进行对比
作为目前最大最活跃的线上问答社区,Quora上的关注度也能在一定程度上体现大众对一个产品的关注度。
显然在Quora上,TF最受大家关注,大家对TF的也问题最多。PyTorch和Keras也有比较多的新增关注,FastAI就有些尴尬了。
数据分析方法
Jeff创建了一个计算增长分数的方法:
- 衡量0到1之间的所有功能
- 聚合在线职位列表和GitHub活跃度
- 类别的权重根据以下百分比
- 为了更好的理解,权重分数都乘以100
- 将每个框架的类别分汇总为单个增长分
工作列表占总分的三分之一多一点,毕竟俗话说得好:金钱万能,有钱能使鬼推磨。
结果
以下是表格形式的变化:
以下类别和最终得分:
以下是最终的增长分:
TensorFlow需求最旺盛,增长也最快。但是PyTorch也在迅速发展,和TensorFlow的差距并没有特别大。它在工作岗位需求中的大量增加证明了其使用和需求的增加。
在过去的六个月里,Keras也有了很大的发展。最后,虽然fastai分数最低,但也最年轻,未来还不好说。
未来畅想
所谓萝卜青菜各有所爱。PyTorch更有Python味儿,API也更一致。它还具有原生的ONNX模型导出,可用于加速推理。此外,PyTorch与numpy共享许多命令,从而降低了学习门槛。
TensorFlow 2.0则完全是为了改进用户体验。正如谷歌首席决策情报工程师Cassie Kozyrkov之前解释的那样,TensorFlow现在拥有更直接的API,更简化的Keras集成,更偏实用层面,应该有助于该框架在未来几年保持流行。
TensorFlow最近宣布了另一个激动人心的计划:Swift for TensorFlow。Swift最初由Apple构建的编程语言,在执行和开发速度方面,Swift比Python有许多优势。
Fast.ai将在部分高级MOOC中使用Swift for TensorFlow,这门语言可能不会在一两年内有突破性的发展,但它可能是对当前深度学习框架的改进。
未来量子计算的发展可能会影响到深度学习框架,需要适配这项新技术。
所以,亲爱的读者,你会如何选择呢?
参考链接:
https://towardsdatascience.com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318