Horace He最近发表了一篇文章,文章总结了2019年机器学习框架的状况。该文章使用几个指标表明PyTorch正迅速成为研究领域的主要框架,而部署在商业/工业环境中的应用程序中,占据主导地位的则是TensorFlow。
康奈尔大学(Cornell University)的研究生Horace He统计了有关PyTorch或TensorFlow的论文数量,这些论文发表在一系列著名的机器学习方向的大会上,如:ECCV、NIPS、ACL、NAACL、ICML、CVPR、ICCV和EMNLP。总的来说,2019年每个重要的大会上发表的大多数论文都是用PyTorch实现的。在视觉相关的会议上,用PyTorch与用TensorFlow的比例为2:1,而在自然语言相关的会议上,这个比例为3:1。在更通用的机器学习大会(如ICLR何ICML)上,会议发表的论文中,PyTorch被引用的次数更多。
他认为,与TensorFlow相比 ,PyTorch取得进展的原因包括其简洁性、简单的用法和直观的API,以及(至少)可以接受的性能。
另一方面,作者测量行业采用情况的指标表明,TensorFlow仍然处于领先地位。所用的指标包括:招聘岗位、GitHub受欢迎程度、媒体文章数量等等。他总结了学术界和工业界之间存在的差距有三倍的原因。首先,很多公司会尽可能地避免Python运行时的开销。其次,PyTorch不支持移动“边缘”机器学习。巧合的是,Facebook在PyTorch 1.3版本中刚刚加入对移动设备的支持,该版本发布于本月早些时候。再者,缺乏围绕服务相关的功能,这意味着PyTorch系统比用TensorFlow开发的等效系统更难产品化。
在过去的一年中,PyTorch和TensorFlow在很多方面都变得更加趋于相同了。PyTorch引入了“Torchscrip”和JIT编译器,而TensorFlow宣布将从2.0版本开始转向执行的“Eager模式 ”。Torchscript本质上是PyTorch的图形化表示。从代码中获取图形意味着,我们可以在C++中部署模型并进行优化。TensorFlow的Eager模式提供了一个命令式编程环境,可以立即评估操作,无需构建图形。在优缺点方面,它和PyTorch的Eager模式类似。它有助于调试,但是,模型无法导出到Python之外进行优化以及在移动设备上运行等等。
将来,这两个框架会比现在更加接近。新的竞争者可能会在代码生成或高阶导数(Higher Order Differentiation)等领域挑战它们。他认为一个潜在的竞争者是JAX。构建它的人就是流行的Autograd项目的开发者,并且其具有正向和反向模式自动微分(auto-differentiation )的特性。这允使得高阶导数的计算速度“比PyTorch/TensorFlow能提供的要快几个数量级”。
可以通过Horace He的推特和他联系。他已经发布了文中用于生成数据集的代码和交互式图表。
原文链接:
PyTorch and TensorFlow: Which ML Framework is More Popular in Academia and Industry
领取专属 10元无门槛券
私享最新 技术干货