最新TensorFlow能碾压PyTorch?两大深度学习框架最全比拼

2019-05-05 10:45:11 浏览数 (1)

来源: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

0 人点赞