为什么适用于Python的TensorFlow正在缓慢消亡

简介: 为什么适用于Python的TensorFlow正在缓慢消亡


它哪里都好,就是不好用。

科技领域一直存在着一种「教派之争」。无论是关于不同操作系统、云服务提供商还是深度学习框架的利弊之争,只要喝上几杯啤酒,事实就会被抛到一边,人们就开始就像争夺圣杯一样,为他们支持的技术而战。

关于 IDE 的讨论似乎没有尽头,有些人喜欢 VisualStudio,有些人喜欢 IntelliJ,还有一些人更偏爱普通的旧编辑器,如 Vim。总有人说,爱用的文本编辑器往往会反映出用户的性格,这听起来似乎有点荒唐。

在 AI 技术兴起后,深度学习框架 PyTorch 和 TensorFlow 两大阵营似乎也爆发了类似的「战争」。这两个阵营背后都有大量的支持者,并且他们都有充足的理由来说明为什么他们所喜欢的框架是最好的。

话虽如此,但数据显示出一个再明显不过的事实。TensorFlow 是目前应用最广泛的深度学习框架。它每个月在 StackOverflow 上收到的问题几乎是 PyTorch 的两倍。

但另一方面,PyTorch 最近的发展势头很好,TensorFlow 的用户一直没有增长。在这篇文章发表之前,PyTorch 一直在稳步获得关注。

为了完整起见,下图还展示了与 TensorFlow 几乎同时发布的 Keras。显然,Keras 近年来的表现不尽人意,简单来说是因为 Keras 有点简单,对于大多数深度学习从业者的需求来说太慢了。


PyTorch 的热度仍在增长,而 TensorFlow 的增长已经停滞。图表来自 StackOverflow trends。


TensorFlow 的 StackOverflow 流量可能不会快速下降,但它仍然是在下降。所以人们有充分的理由认为,这种下降趋势在未来几年将会更加明显,特别是在 Python 领域。

PyTorch 是更 python 化的框架

谷歌主导开发的 TensorFlow 是 2015 年底出现在深度学习派对上的首批框架之一。然而就像任何软件一样,第一个版本使用起来总是相当麻烦。

这也正是 Meta(Facebook)开始研发 PyTorch 的原因,作为一种与 TensorFlow 功能相似,但操作起来更加便捷的技术。

TensorFlow 的研发团队很快就注意到了这一点,并在 TensorFlow 2.0 大版本更新中采用了许多 PyTorch 上最受欢迎的特性。

一个好的经验法则是用户可以在 TensorFlow 中做任何 PyTorch 能做的事情。它将花费两倍的精力来编写代码。即使在今天,它也不是那么直观,而且感觉很不 python。

另一方面,对于喜欢使用 Python 的用户来说,PyTorch 的使用体验非常自然。

PyTorch 有更多可用的模型

许多公司和学术机构不具备构建大型模型所需的强大计算能力。然而在机器学习方面,规模才是王道;模型越大,性能越好。

在 HuggingFace 的帮助下,工程师可以使用大型、经过训练的和调优的模型,只需几行代码就可以将它们合并到他们的工作流程管道中。然而,这些模型中的 85% 只能与 PyTorch 一起使用,这令人惊讶。只有大约 8% 的 HuggingFace 模型是 TensorFlow 独有的。其余部分可共用于两个框架。

这意味着如今的很多用户如果打算使用大模型,那么他们最好远离 TensorFlow,不然就需要投入大量的计算资源来训练模型。

PyTorch 更适合学生和研究使用

PyTorch 在学术界更受欢迎。这么说并非没有依据:四分之三的研究论文使用的是 PyTorch。甚至在那些一开始使用 TensorFlow 的研究人员中 —— 记住,在深度学习方面它出现的更早 —— 大多数人现在也已经转向使用 PyTorch 了。

这种令人惊讶的趋势会持续下去,尽管谷歌在 AI 研究中有着举足轻重的地位,并且一直主要使用 TensorFlow。

更顺理成章的是,研究影响教学,决定着学生将会学到什么。一个使用 PyTorch 发表了大部分论文的教授将更倾向于在讲座中使用它。他们不仅可以更轻松地讲授和回答有关 PyTorch 的问题,也可能对 PyTorch 的成功抱有更强烈的信念。

因此,大学生对 PyTorch 的了解可能比 TensorFlow 多得多。而且,考虑到今天的大学生就是明天的打工人,那么这一趋势的走向就可想而知……

PyTorch 的生态系统发展得更快

到头来,只有当参与到生态系统中时,软件框架才重要。PyTorch 和 TensorFlow 都有相当发达的生态系统,包括除了 HuggingFace 之外的训练模型的存储库、数据管理系统、故障预防机制等等。

值得一提的是,到目前为止,TensorFlow 的生态系统仍然比 PyTorch 稍微发达一点。但请记住,PyTorch 是后来才出现的,并且仅仅在过去几年中就有了相当多的用户增长量。因此,PyTorch 的生态系统可能会未来的某一天超过 TensorFlow。

TensorFlow 的基础设施部署更好

尽管 TensorFlow 代码编写起来很麻烦,但一旦编写完成,它的部署要比 PyTorch 容易得多。TensorFlow services 和 TensorFlow Lite 等工具部署到云、服务器、移动和物联网设备的过程顷刻间能完成。

另一方面,在部署发布工具方面,PyTorch 一直是出了名的慢。话虽如此,它最近一直在加速缩小与 TensorFlow 的差距。

目前还很难预测,但 PyTorch 很有可能在未来几年赶上甚至超过 TensorFlow 的基础设施部署。

TensorFlow 代码可能还会存在一段时间,因为在部署后切换框架的成本很高。然而,可想而知,新的深度学习应用程序将越来越多地使用 PyTorch 进行编写和部署。

TensorFlow 并不全是 Python

TensorFlow 并没有销声匿迹。只是不像以前那么炙手可热了。

核心原因在于,许多使用 Python 进行机器学习的人正在转向 PyTorch。

需要注意的是,Python 并不是机器学习的唯一语言。它是机器学习的代表性编程语言,这也是 TensorFlow 开发人员将支持集中在 Python 上的唯一原因。

现在,TensorFlow 也可以与 JavaScript、Java 和 C++ 一起使用。社区也开始开发支持其他语言,如 Julia、Rust、Scala 和 Haskell 等。

另一方面,PyTorch 极度以 Python 为中心 —— 这就是为什么它给人的感觉如此 Python 化。即使它有一个 C++ API,但它对其他语言的支持程度还不及 TensorFlow 的一半。

可以想象,PyTorch 将在 Python 中取代 TensorFlow。另一方面,TensorFlow 凭借其卓越的生态系统、部署功能以及对其他语言的支持,仍将是深度学习领域的一员大将。

对 Python 的喜爱程度决定了下一个项目是选择 TensorFlow 还是 PyTorch。

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

相关文章
|
6月前
|
人工智能 供应链 安全
实现企业级 MCP 服务统一管理和智能检索的实践。
本文将深入剖析 MCP Server 的五种主流架构模式,并结合 Nacos 服务治理框架,为企业级 MCP 部署提供实用指南。
521 130
|
7月前
|
缓存 前端开发 JavaScript
WordPress主题代码优化深度指南
本文深入探讨WordPress主题优化的核心策略,涵盖前端性能(CSS/JS优化、图片处理)、后端PHP优化(数据库查询、对象缓存)、架构设计(模块化与工作流)及安全可维护性。通过具体代码示例和工具推荐,帮助提升页面加载速度、改善SEO表现、降低资源消耗,并增强安全性。优化非一次性任务,需基于性能优先原则与数据驱动决策持续改进,最终实现流畅用户体验。
169 2
|
5月前
|
Ubuntu 安全 Docker
Ubuntu Server上安装配置Docker的详细步骤
如果一切设置正确,这将下载一个测试镜像,并在容器中运行它,打印一条问候消息。
697 76
|
10月前
|
人工智能 API
通义千问 Qwen 衍生模型包揽 HuggingFace 开源榜单全球前十!
通义千问 Qwen 衍生模型包揽 HuggingFace 开源榜单全球前十!
|
敏捷开发 前端开发 测试技术
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
7927 1
GitHub帐户管理更改电子邮件
登录到您的 GitHub 帐户: 前往 GitHub 网站并使用您的凭据登录。 访问个人设置: 单击右上角的您的头像,然后选择“Settings”(设置)。 选择电子邮件选项卡: 在左侧边栏中选择“Emails”(电子邮件)选项卡。 添加新电子邮件地址: 在“Primary email address”(主电子邮件地址)下面,您可以添加一个新的电子邮件地址。输入您想要设置为新主电子邮件地址的邮箱。
467 1
|
供应链 Oracle 关系型数据库
Crystal Ball—甲骨文水晶球风险管理软件(概念以及实战——基础案例篇)(上)
Crystal Ball—甲骨文水晶球风险管理软件(概念以及实战——基础案例篇)(上)
|
负载均衡 API
直播源码解决同时在线高并发的方案
直播源码搭建直播平台,直播源码技术就是其中重要的一环,而直播源码技术的功能又是直播软件app平台开发的重要环节,今天我为大家分享直播源码技术高并发问题解决。
直播源码解决同时在线高并发的方案
|
机器学习/深度学习 算法 数据挖掘
计算GMAC和GFLOPS
GMAC 代表“Giga Multiply-Add Operations per Second”(每秒千兆乘法累加运算),是用于衡量深度学习模型计算效率的指标。它表示每秒在模型中执行的乘法累加运算的数量,以每秒十亿 (giga) 表示。
525 0
计算GMAC和GFLOPS
牛客网——牛牛的通勤
牛客网——牛牛的通勤
301 0