查看原文
其他

TensorFlow 难敌 PyTorch,终是败下阵?

CSDN 2023-02-13

【CSDN 编者按】有竞争的地方就有江湖。近几年来,在机器学习框架上,TensorFlow 与 PyTorch 的角逐引发众人关注,几经迭代,谁才是更好的框架,本文进行了一波详细的比对,希望对你的技术选型提供一定的参考价值。

原文链接:https://thenextweb.com/news/why-tensorflow-for-python-is-dying-a-slow-death

声明:本文为 CSDN 翻译,未经允许,禁止转载。


作者 | Ari Joury
译者 | 弯月      责编 | 屠敏
出品 | CSDN(ID:CSDNnews)

在科技行业,各个层面的争论无休无止,有些关乎不同的操作系统,而有些则是关于云提供商或深度学习框架的优缺点。在大大小小的聚会上,几杯酒水下肚,人们就会纷纷为各自的技术开战,拥戴心中的“圣杯”。

举个例子,关于 IDE 的争论从来没有停止过,有些人喜欢 Visual Studio,有些人选择使用 IntelliJ,而有些人则喜欢使用老式编辑器,如 Vim。

PyTorch 与 TensorFlow 之间也爆发了类似的战争。这两大阵营都有大批支持者,而且他们都有很好的论据来说明为什么自己选择的框架才是最好的。

话虽如此,统计数据表明,截至目前,TensorFlow 是使用最广泛的深度学习框架。每个月 StackOverflow 上有关 TensorFlow 的问题几乎是 PyTorch 的两倍。

另一方面,TensorFlow 自 2018 年左右以来就几乎陷入了停滞,而 PyTorch 一直在稳步上升。

下图除了比较 PyTorch 与 TensorFlow 之外,还加入了 Keras,因为它与 TensorFlow 几乎是同时发布的。但是,正如大家看到的那样,近年来 Keras 的发展陷入了困境。简单来说,Keras 对于大多数深度学习从业者的需求来说过于简化,而且速度太慢了。

图:PyTorch 仍在发展中,而 TensorFlow 则陷入了停滞。

短期内,StackOverflow 上 TensorFlow 的热度不会快速下降,但仍呈下降趋势。我们有理由相信,这种下降趋势在未来几年会变得更加明显,尤其是在 Python 的世界中。

PyTorch 更符合 Python 的风格


TensorFlow 由谷歌开发,于 2015 年底推出,它是第一批深度学习框架之一。然而,第一版的 TensorFlow 使用起来相当麻烦——当然绝大多数软件的第一个版本往往都是如此。

这也是 Meta 开发 PyTorch 的原因,目的是提供与 TensorFlow 相同的功能,但更易于使用。

TensorFlow 背后的开发者很快注意到了这一点,并在 TensorFlow 2.0 中引入了许多 PyTorch 最受欢迎的功能。

人们常说,任何PyTorch能完成的工作,TensorFlow也能完成,只不过你要花费双倍的精力编写代码。即使在今天,TensorFlow 的使用也依然有门槛,而且不符合 Python 的风格。

相反,如果你喜欢 Python,那么使用 PyTorch 会觉得非常自然。


PyTorch 有更多可用模型


许多公司和学术机构不具备构建大型模型所需的强大计算能力。然而,对于机器学习而言,规模为王。模型越大,性能就越出色。

HuggingFace 提供了大量可供工程师使用的经过训练和调整的大型模型,只需几行代码即可将它们整合到自己的流水线中。然而,这些模型中竟然有 85% 只能用于 PyTorch,只有大约 8% 的 HuggingFace 模型是 TensorFlow 独有的,其余模型则两个框架都可以使用。

这意味着,如果你打算使用大型模型,则最好远离 TensorFlow,不然就要投资大量计算资源来训练自己的模型。



PyTorch 更适合学生和研究


PyTorch 在学术界广受好评。这并非没有道理,四分之三的研究论文都使用了 PyTorch。即使刚开始的时候选择使用 TensorFlow 的研究人员,现在大多数也已经迁移到了 PyTorch。

尽管谷歌在 AI 研究领域占有相当大的市场份额,并且主要使用 TensorFlow,但上述趋势仍然很惊人,而且将持续存在。

更加需要注意的是,研究会影响教学,因此可以决定学生的学习内容。大多数使用 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 并不是唯一的机器学习语言。只不过许多开发机器学习项目都使用了 Python,这也是 TensorFlow 的开发人员努力支持 Python 的唯一原因。

如今,人们可以结合使用 TensorFlow 与 JavaScript、Java 和 C++ 等。社区也开始开发 Julia、Rust、Scala 和 Haskell 等其他语言的支持。

另一方面,PyTorch 的一切都以 Python 为中心,这也是为什么这个框架非常符合 Python 风格的原因。虽然 PyTorch 有一个 C++ API,但对其他语言的支持还不到 TensorFlow 的一半。

单论 Python,PyTorch 肯定更占优势,但另一方面,TensorFlow 拥有强大的生态系统和部署功能,而且支持很多其他语言,所以仍将是深度学习领域不可忽视的力量。

总的来说,您的下一个项目是选择 TensorFlow 还是 PyTorch,主要取决于您对 Python 的喜爱程度。

《2022-2023 中国开发者大调查》重磅启动,欢迎扫描下方二维码,参与问卷调研,更有 iPad 等精美大礼等你拿!

小米汽车设计图纸泄露,官方称非最终文件;微软裁员遣散费高达8亿美元,人均获赔54万元;苹果暂停自研Wi-Fi芯片|极客头条
前雇员“叛变”,泄露了老东家 44.7 GB 的源码!
微软正打造全新 Edge“Phoenix”浏览器?网友:画蛇添足?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存