当前位置: 首页 > 科技观察

PyTorch称霸顶会:CVPR论文占比是TensorFlow的4倍

时间:2023-03-13 05:26:51 科技观察

在开源框架领域,PyTorch与TensorFlow的争论一直存在,研究者在写论文时也存在不同的偏见。但近年来,得益于PyTorch自身的一些优势,越来越多的学者更倾向于选择PyTorch,TensorFlow的使用比例逐渐下降。自2009年深度学习再次成为焦点以来,许多机器学习框架成为研究人员和行业开发者的新宠。从早期的Caffe、Theano等学术框架,到Pytorch、TensorFlow等规模越来越大的开发框架。到2020年,我们可以看到越来越多的国内外科技巨头和初创公司在开发和使用自己的深度学习框架。比如国内的公司还有百度飞桨、华为MindSpore、旷视天元。但不得不说,最流行的开源框架仍然是谷歌的TensorFlow和Facebook的PyTorch。两者之间的较量,也是社会非常关注的话题。在上一篇机器之心的文章中,我们曾报道过,虽然2018年TensorFlow依然碾压PyTorch,但2019年以来PyTorch的发展可以说是火力全开,尤其是在学术界,几乎一马当先。近两年,从各种自然语言处理(NLP)和计算机视觉(CV)国际学术会议的录用论文中PyTorch和TensorFlow的占比,我们可以发现这一趋势。近日,随着ICLR2020和CVPR2020会议的结束,前PyTorch实习生、一直致力于机器学习领域深度学习框架发展趋势的学者HoraceHe更新了PyTorch和TensorFlow在机器学习领域的使用ICLR2020和CVPR2020收录论文及相关比例,结果显示:在ICLR2020和CVPR2020会议中,使用PyTorch的论文数量远超TensorFlow,研究人员对PyTorch的偏好进一步加深。PyTorch继续主宰着学术界。在最新的图表数据中,HoraceHe仍然使用ICLR2020和CVPR2020接收论文。PyTorch使用量占TensorFlow/PyTorch使用总数的比例,以及PyTorch/TensorFlow的具体使用量与接收论文总数的比值作为评价指标。交互版图表见:http://horace.io/pytorch-vs-tensorflow/ICLR2020PaperPyTorch/TensorFlowUsageAnalysis首先看PyTorch使用量占TensorFlow/PyTorch使用总数的比例ICLR2020接收论文:如果比例超过50%,则意味着顶会接收到更多使用PyTorch的论文而不是TensorFlow。从下图可以看出,在ICLR2020录用论文中,PyTorch的占比达到了69.80%,而ICLR2018为28.05%,ICLR2019为55.91%,可见ICLR2020录用论文中使用PyTorch的数量大大超越了TensorFlow。下图更直观地展示了ICLR2020录用论文中PyTorch和TensorFlow的具体用法。可以看出PyTorch使用了141次,而TensorFlow使用了61次,PyTorch使用了TensorFlow的两倍多。而且2019年出现了PyTorch多于TensorFlow的使用,之前TensorFlow的使用多于PyTorch。PyTorch和TensorFlow占接收论文总数的比例如下图所示。可以看出PyTorch占比20.52%,相比ICLR2018的6.82%和ICLR2019的14.14%,持续上升;同时,TensorFlow占比仅为8.88%,相比ICLR2018的17.51%、ICLR2019的11.16%呈现出连续下降的趋势。这表明PyTorch和TensorFlow的使用自2019年以来发生了根本性的变化。CVPR2020论文中PyTorch和TensorFlow的使用分析首先如下图所示。在CVPR2020的录用论文中,使用PyTorch的论文占TensorFlow/PyTorch使用总数的79.88%。增长的趋势。CVPR2020大会录用论文中PyTorch和TensorFlow的具体使用数量如下图所示。可以看出PyTorch被使用了405次,TensorFlow被使用了102次,PyTorch的使用次数是TensorFlow的近4倍。而且,PyTorch使用多于TensorFlow的情况在2019年也出现了,而在此之前,PyTorch使用少于TensorFlow。下图是PyTorch和TensorFlow在CVPR2020接收论文总数中的占比,可以看出PyTorch占27.61%,TensorFlow占6.95%。同样的,2019年出现了一个转折点,可以看到在ICLR和CVPR会议上,PyTorch和TensorFlow的使用量和占比在2019年发生了根本性的变化,从那以后PyTorch的使用量已经超过了TensorFlow,而且占比还在不断增加。为什么研究人员更喜欢PyTorch?今年4月,PyTorch1.5发布。它对C++前端进行了重大更新,并引入了新的高级自动梯度API,使用户可以更轻松地执行jacobian、hessian、jvp和vjp等函数。不过,自谷歌于2019年10月推出TensorFlow2.0正式版以来,一直被用户抱怨太难用。这不仅体现在缺乏官方的指南、详细的文档、官方开发团队的解答,还有一些自身的问题,比如与Keras的集成等等。所有这些都迫使一些用户青睐PyTorch。那么,就框架本身而言,为什么越来越多的研究者选择在论文中使用PyTorch?可以归纳为以下三个原因:简单。与numpy类似,PyTorch可以轻松地与Python生态系统集成。例如,在PyTorch模型中的任意位置放置一个pdb断点,它将正常工作。而在TensorFlow中,调试模型需要一个活动会话,这最终会很棘手;优秀的API。大多数研究人员更喜欢PyTorch的API而不是TensorFlow。一方面是因为PyTorch的设计更好,另一方面是因为:TensorFlow在多次转换API后损坏了自己;表现。尽管PyTorch的动态图几乎没有留下优化的机会,但有相当多的非正式报告称PyTorch与TensorFlow一样快。目前还不清楚这是否属实,但至少TensorFlow在这方面还没有取得决定性的优势。PyTorch的这些优点可能是越来越多的学者选择它的原因!