为什么适用于Python的TensorFlow正在慢慢消亡无论是关于不同操作系统、云提供商或深度学习框架的优缺点的辩论,在喝了几杯啤酒之后,事实就会被抛到一边,人们开始为他们所拥有的技术的圣杯而战支持。战争。关于IDE的讨论似乎没完没了,有些人喜欢VisualStudio,有些人喜欢IntelliJ,有些人更喜欢像Vim这样的普通老式编辑器。人们总是说,最喜欢的文本编辑器往往是用户个性的反映,这听起来有点荒谬。AI技术兴起后,深度学习框架PyTorch和TensorFlow两大阵营之间似乎也爆发了一场类似的“战争”。两个阵营背后都有很多支持者,并且都有充分的理由证明他们首选的框架是最好的。话虽如此,数据揭示了一个再明显不过的事实。TensorFlow是目前使用最广泛的深度学习框架。它每月在StackOverflow上收到的问题几乎是PyTorch的两倍。但另一方面,PyTorch最近发展得很好,而TensorFlow的用户并没有增长。在这篇文章发表之前,PyTorch一直在稳步获得关注。为了完整起见,下图还显示了与TensorFlow大约同时发布的Keras。显然,Keras近年来的表现并不尽如人意,仅仅是因为Keras对于大多数深度学习从业者的需求来说有点过于简单和太慢了。PyTorch的受欢迎程度仍在增长,而TensorFlow的增长停滞不前因此,有充分的理由认为这种下降趋势在未来几年会变得更加明显,尤其是在Python领域。PyTorch是一个更像pythonic的框架,谷歌主导的TensorFlow是2015年底出现在深度学习派对上的首批框架之一。然而,与任何软件一样,第一个版本使用起来总是相当麻烦。这就是为什么Meta(Facebook)开始开发PyTorch作为一种与TensorFlow功能相似但操作更方便的技术。TensorFlow研发团队很快就注意到了这一点,并在TensorFlow2.0大版本更新中采用了PyTorch的许多最受欢迎的功能。一个好的经验法则是用户可以在TensorFlow中做PyTorch可以做的任何事情。编写代码将花费两倍的精力。即使在今天,它也不是那么直观,而且感觉非常不自然。另一方面,对于喜欢使用Python的用户来说,使用PyTorch的体验是非常自然的。许多公司和学术机构不具备构建大型模型所需的强大计算能力。然而,就机器学习而言,规模为王。模型越大,性能越好。在HuggingFace的帮助下,工程师只需几行代码就可以采用经过训练和调整的大型模型,并将它们整合到他们的工作流程中。然而,这些模型中有85%只能与PyTorch一起使用,这令人惊讶。只有大约8%的HuggingFace模型是TensorFlow独有的。其余部分对两个帧都是通用的。这意味着现在很多用户如果打算使用大型模型,最好远离TensorFlow,否则他们需要投入大量的计算资源来训练模型。PyTorch更适合学生和研究使用PyTorch在学术界更受欢迎。这并非没有优点:四分之三的研究论文使用PyTorch。即使在那些开始使用TensorFlow的研究人员中——请记住,那是深度学习的早期——大多数现在已经转向PyTorch。尽管谷歌大量参与人工智能研究并使用TensorFlow,但这种令人惊讶的趋势将继续下去。更合乎逻辑的是,研究会影响教学并决定学生将学到什么。使用PyTorch发表大部分论文的教授将更倾向于在他的讲座中使用它。他们不仅可以更轻松地教授和回答有关PyTorch的问题,他们还可能对PyTorch的成功更有信心。因此,大学生对PyTorch的了解可能比对TensorFlow的了解要多得多。而且,考虑到今天的大学生是明天的工薪族,这种趋势的走向也就不足为奇了……PyTorch的生态系统发展得更快,最后,软件框架只有在参与生态系统时才重要。PyTorch和TensorFlow都有相当发达的生态系统,包括除HuggingFace之外的训练模型的存储库、数据管理系统、故障预防机制等。值得一提的是,到目前为止,TensorFlow的生态系统还是比PyTorch稍微发达一些。但请记住,PyTorch出现较晚,并且仅在过去几年中就实现了可观的用户增长。因此,PyTorch的生态系统有可能在未来的某一天超越TensorFlow。更好的TensorFlow基础设施部署尽管TensorFlow代码编写起来很麻烦,但一旦编写完成,它比PyTorch更容易部署。TensorFlow服务和TensorFlowLite等工具可以在几秒钟内部署到云、服务器、移动设备和物联网设备。另一方面,在部署发布工具方面,PyTorch一直是出了名的慢。话虽如此,它最近一直在加速缩小与TensorFlow的差距。现在很难预测,但PyTorch很有可能在未来几年内赶上甚至超过TensorFlow的基础设施部署。TensorFlow代码可能会存在一段时间,因为部署后切换框架的成本很高。然而,可以想象,新的深度学习应用程序将越来越多地使用PyTorch编写和部署。TensorFlow并不是Python的全部TensorFlow不会消失。只是不像以前那么热了。核心原因是许多使用Python进行机器学习的人正在转向PyTorch。需要注意的是,Python并不是机器学习的唯一语言。它是机器学习的典型编程语言,这也是TensorFlow开发人员将支持重点放在Python上的唯一原因。现在,TensorFlow还可以与JavaScript、Java和C++一起使用。社区还开始开发对其他语言的支持,例如Julia、Rust、Scala和Haskell等。另一方面,PyTorch非常以Python为中心——这就是为什么它感觉如此Pythonic。尽管它有C++API,但它对其他语言的支持不及TensorFlow的一半。可以想象,PyTorch将取代Python中的TensorFlow。另一方面,TensorFlow凭借其出色的生态系统、部署能力和对其他语言的支持,仍将是深度学习领域的主要参与者。你对Python的喜爱程度决定了你下一个项目是选择TensorFlow还是PyTorch。原文链接:https://thenextweb.com/news/why-tensorflow-for-python-is-dying-a-slow-death
