2020,PyTorch真的赶上TensorFlow了吗?-阿里云开发者社区

开发者社区> 开发者小助手-bz8> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10026 0
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26776 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13840 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9154 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4653 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7347 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4492 0
1946
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载