2020,PyTorch真的赶上TensorFlow了吗?

442 阅读8分钟

机器之心报道

参与:张倩、杜伟

几天前,OpenAI 通过官方博客宣布了「全面转向 PyTorch」的消息,计划将自家平台的所有框架统一为 PyPyTorch。这一消息再次引发了社区关于两个框架优劣的讨论。作为后起之秀,PyTorch 真的已经全面赶超 TensorFlow 了吗?为了研究这个问题,数据科学家 Jeff Hale 从在线职位数量、顶会论文中的出现次数、在线搜索结果、开发者使用情况四个方面对两个框架的现状进行了调研。

通过这四个方面的对比,作者最后得出结论,TensorFlow 在大多数领域仍然处于领先地位,但 PyTorch 正在取得进展并逐渐缩小差距。

其实,这已经不是这位作者第一次调研深度学习框架了。从 2018 年到 2020 年,他先后进行过三次调查研究并发布了相关报告。从这些报告中,我们可以看出深度学习框架在多个维度的热度演变史。

2018: TensorFlow 碾压 PyTorch

Jeff Hale 的第一份调研结果发布于 2018 年 9 月。他在那次调研中发现,TensorFlow 是当时的绝对冠军。在 GitHub 活跃度、谷歌搜索量、Medium 文章数、亚马逊书籍和 arXiv 论文等维度上所占的比重都是最大的。此外,TensorFlow 还拥有最多的开发者用户,相关的网上职位描述也是最多的。

2018 年调研得出的深度学习框架实力得分排名。\

相比之下,当时的 PyTorch 只能排到第三,得分比当时的第二名 Keras 还要矮上一截。

各个框架在 2018 年调研结果中的加权得分。 从中可以看出,TensorFlow 在绝大多数指标中都是绝对冠军,而 PyTorch 大多居于第三名。

2019: PyTorch 火力全开,TensorFlow 增长乏力

2019 年 4 月,Jeff Hale 发布了第二份调查结果。这次,他调研了几个框架在过去 6 个月(此次调研与上次调研之间的时间间隔)里的增长情况。结果发现,TensorFlow 仍然是当时需求量最大、增长最快的框架,但 PyTorch 也不容小觑,在过去的六个月增速超过了原来的第二名 Keras。

2019 年调研得出的深度学习框架增长排名。

值得注意的是,当时的 PyTorch 在职位数量增长方面尤其亮眼,与 TensorFlow 之间的差距非常小。而且,除了领英之外,PyTorch 在所有求职网站上的职位增加量都超过了 TensorFlow。

而在谷歌搜索相对数量方面,TensorFlow 当时已经出现了负增长。这表示,在过去六个月,TensorFlow 的相对搜索数量减少,而 PyTorch 的相对搜索数量增加。

2020: PyTorch 顶会独领风骚,职场优势追赶 TensorFlow

转眼到了 2020 年,框架之争只剩下 PyTorch 和 TensorFlow 两个实力玩家。所以这次,作者把调研的全部精力都放在了这两个框架上。

在这次调研进行时,两个框架已经越来越像了,即出现了「融合」趋势。二者现在都可以在动态 eager execution 模式或静态图模式下运行。

截至目前,PyTorch 已经更新到了 1.4,增加了不少新特性来迎合业界,在谷歌云 TPU 上运行起来也更加容易。此外,PyTorch 的社区也在不断扩大,除了最近的 OpenAI,深度学习开源框架 Chainer 的维护者 Preferred Networks(PFN)也于去年底宣布,该团队今后将不再进行 Chainer 的重大升级,今后的研究方向将转向 PyTorch。

TensorFlow 2.0 也引入了不少新的改进,使得 API 更加精简,对大脑更加友好。此外,TensorFlow 紧密集成了 Keras 作为其前端和高级 API。

与 PyTorch 相比,TensorFlow 在产品和边缘设备深度学习中仍然拥有更加丰富的功能,但是 PyTorch 的功能也在逐渐完善。

在此背景下,此次调研从以下四个评估指标着手,即在线职位数量、顶会论文中出现次数、在线搜索结果和开发者使用情况。

在线职位数量

2020 年 1 月 26 日,作者搜索了 Indeed、Monster、SimplyHired 和 LinkedIn 四个(美国)求职网站中关于 TensorFlow 和 PyTorch 的关键词。

搜索结果如下图所示,TensorFlow 在每个求职网站出现的次数大约是 PyTorch 的两倍。

以百分比计数展示结果如下:

在 10 个月前的调研结果(即 2019 年调研结果)中,TensorFlow 出现在职位列表中的次数是 PyTorch 的三倍,如今差距进一步缩短,降到了两倍。

顶会论文中的出现次数

当前,PyTorch 在顶会论文中出现的次数最多。如下图所示,前 PyTorch 实习生 Horace He 做了一个图表,展示了各大顶会(2017 年-2019 年)论文中,PyTorch 出现次数在 TensorFlow/PyTorch 总出现次数中的占比情况:占比超过 50% 意味着在该顶会论文中 PyTorch 出现的次数多于 TensorFlow。从图中可以看出,PyTorch 在各大顶会中的出现次数几乎都超过了 TensorFlow。

图源: chillee.github.io/pytorch-vs-…

下图展示了 PyTorch 和 TensorFlow 在 NeurIPS 会议论文中(2016 年-2019 年)的直观对比和趋势发展,实线代表 PyTorch,虚线代表 TensorFlow:其中,在 2019 NeurIPS 会议论文中,PyTorch 出现 166 次,TensorFlow 出现 74 次,是后者的两倍之多;而在 2018 年 NeurIPS 会议论文中,PyTorch 的出现次数还是少于 TensorFlow 的。这些可以看出两种框架近年来的发展趋势。

图源:chillee.github.io/pytorch-vs-…

在线搜索结果

作者通过 Google Trends 找出了 2017 年 1 月 26 日至 2020 年 1 月 26 日期间,PyTorch(软件)和 TensorFlow(计算机应用)的相对搜索量。

下图是谷歌搜索结果(Google Search Results)线性趋势线,蓝色代表 TensorFlow,红色代表 PyTorch。从图中可以看出,TensorFlow 的性对搜索量呈下降趋势,而 PyTorch 呈增长趋势,二者差距越来越小。

图源:public.tableau.com/profile/jef…

开发者使用情况

在 2019 年初的 Stack Overflow 开发者调研中,10% 的受访者使用 TensorFlow,3.3% 的受访者使用 Torch/PyTorch。专业开发人员的使用占比情况同样如此(9.4%vs 2.9%)。但鉴于数据取自 2019 年初,现在的真实情况可能有所变化。

总之,在线职位数量中,TensorFlow 的出现次数依然多于 PyTorch,但差距正在缩小;PyTorch 在顶会论文中出现的次数一直处于领先地位,并在谷歌搜索结果中进一步缩小了与 TensorFlow 的差距;在最近一次的 Stack Overflow 开发者调研中,TensorFlow 的使用占比依然是 PyTorch 的三倍。

最后,作者表示,他关于 TensorFlow 和 PyTorch 两种深度学习框架的调研还会继续下去,但目前仍不确定未来两年选择哪种框架最合适。但他认为,TensorFlow 是更加安全的选择。

最后,作者为想要学习深度学习的读者提供了一些有用的资源:如 course.fast.ai 网站:course.fast.ai/index.html。

此外,机器之心最近也盘点了过去几年的优质教程,大家可以收藏学习(参见《收藏、退出一气呵成,2019 年机器之心干货教程都在这里了》)。

相关阅读:

2018 调研结果:《2018 年最热门的深度学习框架?这份科学的排行榜可以告诉你

2019 调研结果:《2019 年,TensorFlow 被拉下马了吗?

参考链接:

towardsdatascience.com/is-pytorch-…

备注:公众号菜单包含了整理了一本 AI小抄非常适合在通勤路上用学习

往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(pdf更新到25集)备注:加入本站微信群或者qq群,请回复“加群”获取一折本站知识星球优惠券,请回复“知识星球”

喜欢文章,点个 在看