“对于Python而言,为什么TensorFlow正在慢慢死去?”一文日前引起热议。作者Ari Joury,是法国索邦大学的粒子物理学博士生,但对将AI和机器学习方法应用在粒子物理学探索上很感兴趣。

作为一个Python爱好者,她在接触两种框架时察觉到了二者的区别。好奇哪种框架目前关注度更高,她便对Stack Overflow上3种主流框架Keras、TensorFlow和PyTorch进行了一个统计:

简单来说,就是TensorFlow关注度更高,Keras陷入停滞甚至下降,而PyTorch虽然起步较晚,但这两年一直呈现关注度稳定上升的趋势。

其一,PyTorch用起来“更Python”。Ari Joury表示,她使用Python编写TensorFlow框架的工作量,可能是PyTorch的两倍,此外后者编写代码的感受比TensorFlow更自然。

其二,PyTorch可用模型更多,且更适合学生和研究者使用。据统计,在HuggingFace中,85%的大模型框架是用PyTorch实现的。

剩余的框架中,除了多个框架实现以外,只有8%的大模型框架是通过TensorFlow实现的。这意味着PyTorch在AI大模型研究者中受欢迎程度更高。不止大模型,使用PyTorch实现论文研究框架的人,变得越来越多。

这一观点也在Papers with Code网站统计上得到了印证。

在代码开源的那些论文研究中,单从框架使用率来看,这4年来PyTorch占比正急剧上升。

PyTorch从最初和TensorFlow持平,到如今远超TensorFlow、稳定成为使用率第一(占比62%)的框架,相比之下TensorFlow占比只有4%:

其三,PyTorch的生态发展更快。

虽然目前TensorFlow在生态体系上发展比PyTorch更好,但从PyTorch使用增长情况来看,这一趋势将在不久的将来得到逆转。

当然,TensorFlow自身也有一些不可取代的优势,例如部署更方便(类似TensorFlow Serving和TensorFlow Lite的工具很多)、以及对其他语言的支持更好等。

毕竟目前对于JavaScript、Java、C++、Julia和Rust等语言来说,TensorFlow还是更好的选择。

PyTorch则基本以Python为中心,即使有个C++ API,但其他语言的整体支持仍然比不上TensorFlow。因此Ari Joury最终认为,这两个框架的选择,很大程度上取决于用户对Python的喜爱程度。

除了Yann LeCun一直是PyTorch的深度支持者以外(毕竟是Meta的人),不少AI大牛也都表态过自己更看好的框架。

至少在几年前TensorFlow推出2.0的时候,“TF2.0和PyTorch谁更好”这个话题就已经开始了。当时,前Kaggle总裁兼首席科学家、fast.ai创始人Jeremy Howard,更看好PyTorch框架。

Keras创始人François Chollet,则在这个话题中投了TensorFlow一票,当时他认为PyTorch会走向下坡路。

至少在2020年的时候,他的观点依旧如此:“如果你是PyTorch粉丝,我的工作与你无关。”但如今来看,PyTorch依旧保持一个活跃的状态。你更看好哪个深度学习框架呢?

参考链接:

[1]https://twitter.com/ylecun/status/1614186881171742720
[2]https://levelup.gitconnected.com/why-tensorflow-for-python-is-dying-a-slow-death-ba4dafcb37e6
[3]https://paperswithcode.com/trends