"); //-->
“85%的模型只能与PyTorch一起使用,这点令人吃惊。只有大约8%的HuggingFace模型是TensorFlow所独有的,其余的可以同时用于两个框架。”此外,在作者看来,PyTorch在学术和研究领域更加吃得开,有四分之三的论文研究都使用了PyTorch,而且很多原本使用TensorFlow研究人员也逐渐开始迁移到PyTorch中。而且从师承来看,当大学教授们将PyTorch应用于日常教学中,学生会得到更多关于PyTorch,而非TensorFlow的见解。而如果将这样的习惯应用于未来的工作当中,PyTorch的潜力将更加巨大。另一方面,尽管TensorFlow目前的生态系统架构更加庞大,但这主要在于它的长期积累。单从用户增量来看,PyTorch的增速要比TensorFlow更快。这似乎也意味着,PyTorch的用户数会在未来某天和TensorFlow的数据重合,然后超过后者。看到这篇文章的LeCun在推特上进行了转发,并配文“Why? PyTorch. That's why.”为什么是PyTorch?这就是为什么。可见该作者对PyTorch的分析深得LeCun的心。
不过,当评论区有人的赞美之情溢于言表,却遭到了Lecun的“一口回绝”。
“PyTorch也许是(以前被称为)Facebook对世界最有用的贡献。
当我决定将我的(数据)管线建立在PyTorch,而不是Keras和Tensorflow上时,这有点像抛硬币,但很高兴我选择了PyTorch。”Lecun对此的回应是:“尽管我很想宣称PyTorch是Meta对世界最有用的贡献,但它不是。Facebook和WhatsApp对整个世界来说是才是用处巨大的。”
OpenCV创始人Gary Bradski也@了Lecun:“PyTorch更像是一种开发者的语言——开发速度第一,并不是为了在某一类特定硬件上的速度而构建的(在任何情况下外人都无法使用),较少凭借plumbing。”也有通过实践感同身受的。
“我使用Tensorflow近5年了,但2个月前我开始使用PyTorch。我不得不决定用PyTorch重写我们公司的所有模型,(它的)开发时间和灵活性都在另一个层次上。”加持了Lecun的Buff,PyTorch似乎更加鲜亮了起来。不过,尽管PyTorch看起来势不可当,作者还是对PyTorch的缺陷进行了较客观的评价,包括与Tensorflow的对比。“Tensorflow拥有更好的基础设施部署,以及对更多编程语言的支持。”在作者看来,这些是PyTorch目前尚不可及的。下附文章的全文翻译。
PyTorch更容易使用,受到更多开发人员的喜爱
(技术)教派战争在科技领域再正常不过。无论是争论不同的操作系统、云厂商,或者是深度学习框架的利弊,还是其他什么。只要几杯酒下肚,事实往往会被撂在一旁,所有人都开始为自己的技术而战,好像它是圣杯一样。只要想想关于IDE的无休止的讨论就知道了。有些人喜欢VisualStudio,有些人使用IntelliJ,还有些人使用Vim。喜欢什么样的文本编译器因个性而异,这将会是一场永无止境而带有半讽刺意味的争论。类似的战争似乎正在围绕PyTorch和TensorFlow展开,两个阵营都有大量的支持者,两个阵营也都有很好的论据来说明为什么他们最喜欢的深度学习框架可能是最好的。虽然如此,但数据说明了一个相当简单的事实。到目前为止,TensorFlow是最广泛的深度学习框架。它每个月在StackOverflow上得到的问题几乎是PyTorch的两倍。另一方面,TensorFlow从2018年左右开始增长停滞。PyTorch的吸引力则一直保持稳步增长,直到这篇文章发表的当天。为了完整起见,我在下图中同时将Keras纳入比较。Keras和TensorFlow差不多是同时发布的。但是,正如人们所看到的,它在最近几年里的表现很差。对此的简要解释是,对于大多数深度学习从业者来说,Keras有点简单化,而且太慢。
虽然TensorFlow的StackOverflow流量可能不会在短期内快速下降,但它确实在下降。而且有理由相信,这种下降在未来几年会变得更加明显,特别是在Python的世界。
PyTorch给人的感觉更Python
谷歌开发的TensorFlow是最早的深度学习框架之一。然而,它的第一个版本使用起来相当麻烦,当然,任何软件的第一个版本往往都是如此。这就是为什么Meta开始开发PyTorch,它与TensorFlow提供相同的功能,但更加简便易用。TensorFlow的运营者很快发现了这点,并在TensorFlow2.0中采用了PyTorch中许多最受欢迎的功能。一个好的经验是:你可以在TensorFlow中做任何PyTorch能做的事,只是要花两倍的精力来编写代码。即使在今天,它也不够直观,而且感觉很不python。如果你喜欢用Python,PyTorch使用起来就会感觉非常自然。
PyTorch有更多可用的模型
许多公司和学术机构都没有建立大模型所需的大规模算力。然而,在机器学习上,规模就是王道。模型越大,其性能就越令人印象深刻。通过HuggingFace,工程师可以使用经过训练和调整的大模型,只需几行代码就可以将它们纳入到pipelines当中。然而,85%的模型只能与PyTorch一起使用,这点令人吃惊。只有大约8%的HuggingFace模型是TensorFlow所独有的,其余的可以同时用于两个框架。
这意味着,如果你打算使用大模型,最好远离TensorFlow,或者投入大量的计算资源来训练自己的模型。
PyTorch更适合于学生和研究型的工作
PyTorch在学术界享有更多荣誉,这并非没有道理,在每四篇研究论文中就有三篇使用PyTorch,即使是那些一开始使用TensorFlow的研究人员,他们大多数后来也迁移到了PyTorch上。
这样的趋势是惊人的,尽管谷歌在人工智能研究方面涉足相当广泛,并且主要通过TensorFlow。更引人注目的是,研究影响了教学,因此也决定了学生可能学到的东西。一个使用PyTorch发表了大部分论文的教授会更倾向于在教学中使用它。他们不仅在教学和回答有关PyTorch的问题时更加得心应手,还可能对PyTorch的成功有更坚定的信念。因此,大学生们可能会得到比TensorFlow多得多的关于PyTorch的见解。而且,今天的大学生是明天的劳动者,你或许可以猜到这个趋势将如何走向……
PyTorch的生态系统发展较快软件框架只有成为生态系统的参与者时才显得更加重要。PyTorch和TensorFlow都有相当发达的生态体系,除了HuggingFace,还包括训练模型库、数据管理系统,以及故障预防机制,等等。值得说明的是,目前而言,TensorFlow的生态系统比PyTorch略为发达。然而,请记住,PyTorch出现的时间较晚,却在过去几年里有相当多的用户增量。因此,可以预期,PyTorch的生态系统可能会伺机超过TensorFlow。
TensorFlow有更好的基础设施部署
尽管TensorFlow的代码可能很繁琐,但一旦写好,就比PyTorch容易部署得多。像TensorFlow Serving和TensorFlow Lite这样的工具使得部署到云、服务器、移动和物联网设备的工作可以在瞬间完成。另一方面,PyTorch在发布部署工具上一直是出了名的慢。虽然如此,它最近一直在努力缩小与TensorFlow的差距。尽管目前还很难预测,但PyTorch很有可能在未来几年内与TensorFlow的基础设施部署相媲美,甚至超越。TensorFlow的代码可能会在一段时间仍具有优势,因为在部署后切换框架的成本高企。然而,可以想象的是,新的深度学习应用程序将越来越多地使用PyTorch编写和部署。
Tensorflow不仅仅只有Python
TensorFlow并没有死,它只是不像以前那样流行了。其核心原因是:许多使用Python进行机器学习的人正在转向PyTorch。但Python并不是机器学习的唯一语言。它是机器学习的O.G.(通用品),这也是TensorFlow的开发者以Python为中心提供支持的唯一原因。如今,人们也可以通过JavaScript、Java和C++来使用TensorFlow,社区也开始开发对其他语言的支持,如Julia、Rust、Scala和Haskell,等等。另一方面,PyTorch是以Python为中心的——这就是为什么它给人的感觉是如此的python。它有一个C++的API,但对其他语言的支持还没有TensorFlow的一半。可以想象的是,PyTorch将在Python中超越TensorFlow。另一方面,TensorFlow凭借令人印象深刻的生态系统、部署功能和对其他语言的支持,仍将是深度学习的重要参与者。在你的下一个项目中,是选择TensorFlow还是PyTorch,主要取决于你对Python的喜爱程度。参考链接
https://thenextweb.com/news/why-tensorflow-for-python-is-dying-a-slow-death
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。