PyTorch席卷了大公司,TensorFlow退出了行业
TensorFlow2.0正式发布几天后的今天,PyTorch1.3正式发布。
一个是强调“易用性”,另一个是建立了移动机制,老手和新手都很紧张。
毕竟,机器学习框架的世界,情况变化太激烈,一放松就会被夺走地盘。
一年前TensorFlow是顶级会议论文选择的主流框架,但现在顶级会议仍在PyTorch的统治下。
在CVPR2019中,只提到PyTorch的论文有280篇,只提到TensorFlow的论文有125篇,但并不是很大的会议。
一位网友(@programmerChilli)了解到,很多研究人员都会离开TF去拥抱PT。
那么PyTorch的优势是什么呢
PyTorch的崛起,对TensorFlow多年来的经营格局有什么影响呐。
此次,康奈尔大学的Horace He这个少年,用详细的调查结果归结了现状。
在报告的开头,现在的大背景是,许多研究人员从TensorFlow转移到PyTorch。
但是,我不知道那个气势有多大。比较一下2018年和2019年。
◆被阻止的ICML为32.5%
在CVPR、NAACL、ACL、ICLR、ICML这5个首位中,PyTorch/TensorFlow提到的论文数量为表。
在2018年,PyTorch的五项数据都低于TensorFlow。
2019年,PyTorch的五个数字都超过了TensorFlow。
PyTorch的数据分别在192%到450%之间上升
特别是自然语言处理(NLP)的首位NAACL(450%)和ACL(290%)非常显著。视觉顶级CVPR也有很大的增长(240%)
与此相对,“TensorFlow”中有3个数字下降。其中NAACL下降了38.2%,PyTorch正在飞跃性地成长。
结果,PyTorch仅用了一年时间就把劣势变成了压倒性的优势。
280:125(CVPR),2倍以上
66:21(ACL)3倍以上。
103:33(NAACL)3倍以上。
在语言和视觉领域,PyTorch的优势最明显,这与前面提到的上升率一致。
如果有人想让PyTorch作为一个全新的人进入TensorFlow的世界,那么数据就表明不再如此。
TensorFlow中还有另外两个数字看起来在增长,其实只是ICML的增长(32.5%),赶上了整个会议招聘论文数量的增长。
也就是说,在其他四个会议中,张量流开始衰退
一个很简单。与NumPy相似,Python的风格可以轻松地与Python进行生态整合
例如,只要在PyTorch模型中加入pdb的截止点就可以马上使用
相比之下,在跷跷板流模型中调试会更复杂。
第二个就是API好。许多研究人员比起TensorFlow的API更喜欢PyTorch的API。PyTorch设计得更科学,而TensorFlow不方便切换各种API。
三是性能。虽然PyTorch的Dynamic Graphs提供的优化余地不大,但很多人认为PyTorch的速度不亚于TensorFlow,或者比其他公司更快。
虽然没有哪一个更快的严格测试数据,但至少“TensorFlow”不是很好。
加上这两项,就足以让许多研究人员接受PyTorch。
张量流在研究的世界里是怎样的呢
即使TensorFlow变得像PyTorch一样友好,PyTorch的地盘也会变大。
也就是说,PyTorch的实现变得容易找到,人们公开PyTorch的代码让大家使用的动机提高,通过和别人合作,队友也有可能倾向于PyTorch。
因此,回到“TensorFlow20”,不那么简单地前进的概率很高。
当然,在google和DeepMind的公司内研究中使用了TensorFlow。我认为他们的研究成果或许给了一些研究人员继续使用TensorFlow的信心。
但Horace He说,谷歌内也有希望摆脱“张量流”的研究人员。
另一方面,PyTorch的优势越来越强,google的研究人员和社区之间可能会产生隔阂。在外部研究的基础上构建自己的应用变得困难,外部研究人员参考google的代码也变得困难。
最后,TensorFlow2.0能否找回一些研究人员还需要一些时间。Eager Execution很吸引人,但Keras API不是
TensorFlow保护产业界
各开发者社区热烈地表示“PyTorch有好闻的味道”,现在在头数上压倒TensorFlow,但在产业界TensorFlow仍占优势。
例如,Medium博主Jeff Hale说,2019年TensorFlow的在线招聘有1541个新招聘,而PyTorch则有1437个。
从arXiv的论文数量来看,TensorFlow仍然是第一名,但领先优势正在缩小。
另一方面,在PyTorch之前,TensorFlow也诞生过,业界没有像学界那样追求新事物的倾向,使用TensorFlow成为了惯性。
此外,许多公司的代码都是以TensorFlow为基础构建的,迁移到PyTorch并不容易。
另一方面,与PyTorch不同,TensorFlow本身是面向产业界制作的。
工业界比研究实验有更多的限制和要求
我不用Python。Python在服务器上运行成本太高,有些公司无法处理
移动性。无法在移动二进制中嵌入Python解释器。
是服务。无中断更新、模型间无缝切换、可预测时间的批处理等。
TensorFlow显然优于PyTorch,比如训练模型,使用TF Lite部署,是目前最可靠的生产渠道之一。
一位网友举了这样一个例子:。
PyTorch的实现不将模型导出到Python以外的环境,不进行优化,无法在移动设备上运行(PyTorch1.3的发布解决了移动无法实现的问题)
而且TensorFlow还有一个叫Keras的伙伴。
但也有人认为,PyTorch在产业界获得主导地位只是时间问题。
因为在2018年的表演中TensorFlow是主流。仅仅一年,宝座就变了。
PyTorch势头迅猛,但TensorFlow也一动不动。
有趣的是,这两种机器学习框架现在已经“融合”了。
11连休,TensorFlow2.0正式亮相,进一步整合TensorFlow和Keras,增强易用性。官方认为,这是一个快速、可扩展、可投入生产的灵活而强大的平台。
Keras作者Franois Chollet甚至说:TensorFlow2.0是未来的机器学习平台,改变了一切。
在默认eager execution模式下,TensorFlow2.0提供了PyTorch eager模式的大多数优点,包括易用性和可调试性。
另外,对于TensorFlow的API过于复杂的问题,版本2.0提供了更易于使用的API。模型培训和服务无缝地结合到基本框架中。
PyTorch在2018年底引进了JIT编译器和“TorchScript”,增加了图形功能。
今天发布了PyTorch1.3,新增了移动端部署、量化、张量命名等功能。
机器学习框架的未来的游戏的规则怎样变化,是乐趣。
最后,我将介绍这份详细报告的作者。
甲骨文he来自康奈尔大学,是2016年入学的本科生。
上了大学以后,他每个暑假都在大工厂实习。2017年是Facebook实习软件工程师,2018年是谷歌实习软件工程师,2019年在Facebook做PyTorch实习生。
此外,少年也是VScodeVim(标星6.2k)的主要贡献者之一:
那么TensorFlow和PyTorch,你能pick谁?
参考资料:
htps://thegradient.pub/state-of-ml-frameworks-2019-pytorch-dominates-research-tensorflow-dominates
htps://towardsdatascience.com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318
-结束了