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

标签: python tensorflow | 发表时间:2023-01-19 16:18 | 作者:机器之心
出处:https://www.jiqizhixin.com/

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

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

关于 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

相关 [python tensorflow] 推荐:

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

- - 机器之心
科技领域一直存在着一种「教派之争」. 无论是关于不同操作系统、云服务提供商还是深度学习框架的利弊之争,只要喝上几杯啤酒,事实就会被抛到一边,人们就开始就像争夺圣杯一样,为他们支持的技术而战. 关于 IDE 的讨论似乎没有尽头,有些人喜欢 VisualStudio,有些人喜欢 IntelliJ,还有一些人更偏爱普通的旧编辑器,如 Vim.

[Python] [不分词版]Chinese-Text-Classification: Tensorflow CNN 模型实现的中文文本分类器

- - V2EX
从现在的结果来看,分词的版本( https://www.v2ex.com/t/404977#reply6 )准确率稍微高一点. 项目地址: https://github.com/fendouai/Chinese-Text-Classification. jieba 分词的版本在 master 分支,不分词的版本在 dev 分支.

TensorFlow-dev-summit:那些 TensorFlow 上好玩的和黑科技

- - IT瘾-dev
本文属于介绍性文章,其中会介绍许多TensorFlow的新feature和summit上介绍的一些有意思的案例,文章比较长,可能会花费30分钟到一个小时. Google于2017年2月16日(北京时间)凌晨2点在美国加利福尼亚州山景城举办了首届TensorFlow开发者峰会. Google现场宣布全球领先的深度学习开源框架TensorFlow正式对外发布V1.0版本,并保证Google的本次发布版本的API接口满足生产环境稳定性要求.

dropbox讲python

- chuang - Initiative
dropbox定制优化CPython虚拟机,自己搞了个malloc调度算法. 那个 !!!111cos(0). 期待这次PyCon China 2011.

Python调试

- - 企业架构 - ITeye博客
原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137. 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:. IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:.

Python WSGI 初探

- - 坚实的幻想
在构建 Web 应用时,通常会有 Web Server 和 Application Server 两种角色. 其中 Web Server 主要负责接受来自用户的请求,解析 HTTP 协议,并将请求转发给 Application Server,Application Server 主要负责处理用户的请求,并将处理的结果返回给 Web Server,最终 Web Server 将结果返回给用户.

TensorFlow、MXNet、PaddlePaddle 三个开源库对比

- - IT瘾-dev
【转载请注明出处】 chenrudan.github.io. 从深度学习开始流行,到深度学习框架的迭代,到各类实际应用的出现,不过短短几年时间. 其实发展到现在,各个框架对自己的定位都不相同,硬要说哪个框架最好没什么必要,结合自身需求找到合适的用就够了(实验室的服务器不太方便拿来折腾,本文就不比较运算速度了,可以参考[4][5]).

深度学习利器:TensorFlow实战

- - 孟飞阳的博客
深度学习及TensorFlow简介. 深度学习目前已经被应用到图像识别,语音识别,自然语言处理,机器翻译等场景并取得了很好的行业应用效果. 至今已有数种深度学习框架,如TensorFlow、Caffe、Theano、Torch、MXNet,这些框架都能够支持深度神经网络、卷积神经网络、深度信念网络和递归神经网络等模型.

如何将TensorFlow用作计算框架

- - 神刀安全网
摘要:如果你刚刚接触TensorFlow并想使用其来作为计算框架,那么本文是你的一个很好的选择,阅读它相信会对你有所帮助. Tensorflow可能是最受欢迎,增长最快的机器学习框架. 在 Github拥有超过70000个点赞,并得到Google的支持,不仅拥有比 Linux更多的点赞,还拥有大量的资源.

TensorFlow自动识别验证码(二)

- -
在 使用tensorflow自动识别验证码(一) 这篇文章中,对使用tensorflow自动识别验证码的过程做了简单的了解和编写. 那么今天这篇文章将对上篇文章中代码进行修改用于实现对主流的CMS进行验证码的破解. 先回顾一下 tensorflow 的自动识别验证码的步骤. 由于后面三步基本都是tensorflow自动完成.