为什么TensorFlow正在缓慢死亡

Posted AI科技大本营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么TensorFlow正在缓慢死亡相关的知识,希望对你有一定的参考价值。

技术圈一直有哪种语言、工具是最好的讨论。无论是关于不同操作系统、云供应商还是深度学习框架的利弊辩论。想想关于ide无休止的讨论。有些人更喜欢VisualStudio,有些人使用IntelliJ,还有一些人使用普通的老式编辑器,如Vim。关于你最喜欢的文本编辑器会对你的性格产生什么影响,这是一个永远不会结束的争论,当然也有一半是讽刺的。 
类似的讨论似乎正在PyTorch和TensorFlow之间爆发。两个阵营都有大量的支持者。两个阵营都有很好的论点来说明为什么他们最喜欢的深度学习框架可能是最好的。

话虽如此,但数据说明了一个相当简单的事实。TensorFlow是目前最广泛的深度学习框架。它每个月在StackOverflow上收到的问题几乎是PyTorch的两倍。 另一方面,TensorFlow自2018年左右以来就没有增长过。在本文发表之前,PyTorch一直在稳步获得关注。 

为了完整起见,我还在下图中包含了 Keras。它与 TensorFlow 几乎同时发布。但是,正如人们所看到的,它近年来已经下降。对此的简短解释是,对于大多数深度学习从业者的需求来说,Keras 有点过于简单和太慢了

TensorFlow 的 StackOverflow 流量可能不会迅速下降,但仍在下降。并且有理由相信这种下降将在未来几年变得更加明显,尤其是在 Python 领域。

由 Google 开发的 TensorFlow 可能是 2015 年底出现在深度学习派对上的首批框架之一。但是,第一个版本使用起来相当麻烦——任何软件的许多第一个版本往往都是这样。这就是为什么 Meta 开始开发 PyTorch 来提供与 TensorFlow 几乎相同的功能,但更容易使用的原因。TensorFlow 开发人员很快注意到了这一点,并在 TensorFlow 2.0 中采用了 PyTorch 的许多最受欢迎的特性。

另一方面,如果我们喜欢使用 Python,那么 PyTorch 使用起来感觉非常自然。

PyTorch有更多可用的模型 

许多公司和学术机构不具备构建大型模型所需的强大计算能力。然而,在机器学习方面,规模为王。模型越大,其性能就越令人印象深刻。

借助HuggingFace,工程师可以使用经过训练和调整的大型模型,只需几行代码即可将它们合并到他们的管道中。但是,这些模型中的惊人 85%只能与 PyTorch 一起使用。只有大约 8% 的 HuggingFace 模型是 TensorFlow 独有的。其余的可用于两个框架。

这意味着如果你打算使用大型模型,你最好远离 TensorFlow,或者在计算资源上大量投资来训练你自己的模型。

PyTorch更适合学生和研究

PyTorch更受学术界的赞赏。四分之三的研究论文使用PyTorch。即使在那些最开始使用TensorFlow的研究人员中大多数人现在已经迁移到PyTorch。 尽管谷歌在人工智能研究领域拥有相当大的足迹并且主要使用 TensorFlow,但仍然有大量的研究人员抛弃了TensorFlow而选择了PyTorch。

或许更引人注目的是,研究会影响教学,因此决定了学生可能会学到什么。使用 PyTorch 发表大部分论文的教授将更倾向于在课堂中使用它。他们不仅更舒适地教授和回答有关 PyTorch 的问题;他们也可能对其成功抱有更坚定的信念。因此,与 TensorFlow 相比,大学生对 PyTorch 的了解可能要多得多。而且,鉴于今天的大学生就是明天的工人,您可能能够看到这种趋势的发展方向。

PyTorch的生态系统发展地更快

归根结底,软件框架只有在它们是生态系统中的参与者时才有意义。PyTorch 和 TensorFlow 都有相当发达的生态系统,包括 HuggingFace 以外的训练模型的存储库、数据管理系统、故障预防机制等等。

值得一提的是,截至目前,TensorFlow 的生态系统比 PyTorch稍微发达一些。但是,PyTorch 是后来才出现的,并且在过去几年中用户增长了很多。因此,可以预期 PyTorch 的生态系统可能会在适当的时候超过 TensorFlow 的生态系统。

 TensorFlow不仅仅是关于PyTorch

TensorFlow 并没有死。只是不像以前那么受欢迎了。其核心原因是许多使用 Python 进行机器学习的人正在转向 PyTorch。但是 Python 并不是唯一的机器学习语言。它是机器学习的 OG,这也是 TensorFlow 的开发人员将其支持集中在 Python 上的唯一原因。

如今,人们可以将TensorFlow 与 javascript、Java 和 C++ 结合使用。社区也开始开发对其他语言的支持,如 Julia、Rust、Scala 和 Haskell 等。另一方面,PyTorch 非常以 Python 为中心——这就是为什么它感觉如此 Python 的原因。

可以想象,PyTorch 将在 Python中超越 TensorFlow 。另一方面,TensorFlow 凭借其令人印象深刻的生态系统、部署功能和对其他语言的支持,仍将是深度学习的重要参与者。

那么小伙伴们,你主要使用那个深度学习框架呢?

以上是关于为什么TensorFlow正在缓慢死亡的主要内容,如果未能解决你的问题,请参考以下文章

学界 | 机器学习研究趋势分析:TensorFlow已超越Caffe成研究最常用框架

从框架优缺点说起,这是一份TensorFlow入门极简教程

为啥 TensorFlow 中的 'tf.python_io.TFRecordWriter' 如此缓慢且占用存储空间?

Python玩转人工智能最火框架 TensorFlow应用实践 学习 教程

nvcc 错误:使用 bazel 构建 tensorflow 时,'cicc' 以状态 0xC0000005 (ACCESS_VIOLATION) 死亡

TensorFlow 中 CPU 到 GPU 的数据传输是不是缓慢?