2020,PyTorch真的赶上TensorFlow了吗?

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

微信图片_20211203015345.png


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


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


2018:TensorFlow 碾压 PyTorch


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


微信图片_20211203015415.jpg

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


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


微信图片_20211203015440.jpg


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


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


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


微信图片_20211203015509.jpg

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


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


微信图片_20211203015532.jpg

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


微信图片_20211203015552.jpg


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 的两倍。


微信图片_20211203015634.jpg


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


微信图片_20211203015651.jpg


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


顶会论文中的出现次数


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


微信图片_20211203015715.jpg

图源:https://chillee.github.io/pytorch-vs-tensorflow/


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


微信图片_20211203015740.jpg

图源:https://chillee.github.io/pytorch-vs-tensorflow/


在线搜索结果


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


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


微信图片_20211203015812.jpg

图源:https://public.tableau.com/profile/jeff.hale6436#!/vizhome/shared/SCFBWY2SP


开发者使用情况


在 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 是更加安全的选择。

相关文章
|
4月前
|
机器学习/深度学习 分布式计算 PyTorch
Tensorflow、Pytorch、
Tensorflow、Pytorch、Horovod、Spark、JupyterLab、TF-Serving、Triton等。 是什么,怎么用,推荐demo
92 40
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
Python中的深度学习:TensorFlow与PyTorch的选择与使用
Python中的深度学习:TensorFlow与PyTorch的选择与使用
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow vs PyTorch:深度学习框架的比较研究
TensorFlow vs PyTorch:深度学习框架的比较研究
34 1
|
8月前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow VS PyTorch哪个更强?
TensorFlow 和 PyTorch 都是流行的深度学习框架,它们有一些共同点,例如都支持多种编程语言和硬件平台,也都提供了丰富的工具和库来支持深度学习模型的构建、训练和部署。以下是它们的一些区别和优缺点: 区别: 1. 编程风格:TensorFlow 使用的是静态图模型,需要先定义整个计算图,然后再进行计算。PyTorch 使用的是动态图模型,可以像普通 Python 代码一样进行定义、调试和修改。 2. 计算效率:由于 TensorFlow 的计算图是静态的,可以对其进行优化和分布式计算,因此在大规模数据和模型上进行训练时,TensorFlow 的效率更高。而 PyTorch 在小规模
388 0
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
一文带你了解 三种深度学习框架(Caffe,Tensorflow,Pytorch)的基本内容、优缺点以及三者的对比
一文带你了解 三种深度学习框架(Caffe,Tensorflow,Pytorch)的基本内容、优缺点以及三者的对比
144 1
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
如何使用TensorFlow或PyTorch进行机器学习任务?
如何使用TensorFlow或PyTorch进行机器学习任务?
|
5月前
|
数据可视化 PyTorch TensorFlow
Keras和Tensorflow(CPU)安装、Pytorch(CPU和GPU)安装以及jupyter使用虚拟环境
Keras和Tensorflow(CPU)安装、Pytorch(CPU和GPU)安装以及jupyter使用虚拟环境
93 0
|
6月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习框架教程:介绍一些流行的深度学习框架 (如TensorFlow、PyTorch等)
深度学习框架教程:介绍一些流行的深度学习框架 (如TensorFlow、PyTorch等)
62 0
|
6月前
|
机器学习/深度学习 数据可视化 PyTorch
PyTorch 与 TensorFlow:机器学习框架之战
PyTorch 与 TensorFlow:机器学习框架之战
158 0

热门文章

最新文章