来势汹汹PyTorch!ICLR论文提及频率直追TensorFlow(附对比)

简介: 昨日,Facebook 在首届 PyTorch 开发者大会发布了 PyTorch1.0 预览版,标志着这一框架更为稳定可用。从去年年初发布以来,PyTorch 已经成为明星框架,发展速度甚至有力压 TensorFlow 的趋势。据网友统计,在最新的 ICLR 2019 提交论文中,提及 TensorFlow 的论文数量从 228 升到了 266,而提及 PyTorch 的论文数量从 2018 年的 87 激增到了 252,这是否也是 PyTorch 即将赶超 TensorFlow 的又一证明?


ICLR 提交论文提及频率


今日,Reddit 上的一条帖子吸引了大家的关注:有网友统计,相比于 2018 年,在 ICLR 2019 提交论文中,提及不同框架的论文数量发生了极大变化。


首先,说下 2018 年和 2019 年论文提交数量。ICLR 2019 将于明年 5 月 6 日-9 日在美国新奥尔良举行,今年 9 月 27 日下午 18 时,大会论文提交截止。据统计,ICLR 2019 共收到 1591 篇论文投稿,相比去年的 1000 余篇增长了 60%。


其次,介绍下统计方法,相当简单。在 Frankensteinian search 搜索框下分别搜索提及不同框架的论文结果,如下:


微信图片_20211130111459.jpg

网友发现,提及 TensorFlow 的论文数量从 2018 年的 228 篇略微提升到了 266 篇,Keras 从 42 升到 56,但 Pytorch 的数量从 87 篇提升到了 252 篇。从数据上可以明显看出,采用 PyTorch 的 ICLR 论文在这一年内几乎要超越 TensorFlow。


  • TensorFlow:228→266
  • Keras: 42→56
  • Pytorch:87→252


在 PyTorch 1.0 推出之际,这样的数据统计让我们不得不联想到:TensorFlow 的深度学习框架霸主地位是否还保得住?既然 PyTorch 1.0 预览版已经发布,那么让我们再把两个框架放在一起对比下,看哪一款才是适合你的深度学习框架。


TensorFlow VS PyTorch


自 2015 年开源以来,深度学习框架的天下就属于 TensorFlow。不论是 GitHub 的收藏量或 Fork 量,还是业界使用量都无可比拟地位列第一。


微信图片_20211130111503.jpg

TensorFlow 的版本迭代


但是 TensorFlow 有一个令人诟病的劣势,即它和 Theano 一样采用的是静态计算图,这令神经网络的搭建和入门学习都变得更加困难。因此在 2017 年 1 月,Torch7 团队开源了 PyTorch,它的宗旨是尽可能令深度学习建模更加简单。


微信图片_20211130111506.jpg

PyTorch 的版本迭代


其实机器之心在很多对比文章中都发现 TensorFlow 的使用在目前来说还是最为广泛的,但是 PyTorch 的发展势头非常迅猛,尤其是在学术研究领域的应用上。那么为什么新近开源的 PyTorch 会那么受欢迎呢,首先我们需要了解深度学习框架的关键点:


  • 易于构建大型计算图
  • 易于在计算图中进行梯度运算
  • 能在 GPU 上高效运行(cuDNN、cuBLA 等)


在后两项中,基本上 TensorFlow 和 PyTorch 都能实现高效的自动微分机制和并行运算机制。但是在第一项中,PyTorch 的哲学是解决当务之急,也就是说即时构建和运行计算图,这与 TensorFLow 先建立静态计算图再发生实际运算相比要简单地多。因此在第一项上,PyTorch 具备很大优势,但是 TensorFlow 的静态计算图更有利于部署模型,且现在同样也非常关注动态计算图。


工业化的缺陷


PyTorch 最开始发布以来,大家都偏向于使用它做学术研究,而不是用于实际生产。主要的原因可能有两点:首先它比较新,还不太成熟,因此很多 API 接口和结构也都不太稳定;其次是动态计算图在部署上不太方便,而像 TensorFlow 这样的静态图可以在不同的环境下调用计算图和对应参数,因此很容易部署到各种产品中。


由于 PyTorch 与 Python 有着紧密的结合,因此将这种动态计算图部署到其它产品会比较困难。不论是训练脚本还是预训练模型,我们经常需要将研究代码转换为 Caffe2 中的计算图表征,从而实现生产规模上的高效使用。其中 Caffe2 项目是两年前提出的,其目的是标准化 AI 模型的生产工具,目前该框架在 Facebook 服务器以及超过 10 亿台手机上运行,横跨了八代 iPhone 和六代安卓 CPU 架构。


之前,从 PyTorch 到 Caffe2 的迁移过程是手动的,耗时间且容易出错。为了解决这个问题,Facebook 与主要的硬件和软件公司合作创建了 ONNX(开放神经网络交换格式),这是一种用于表示深度学习模型的开放格式。通过 ONNX,开发者能在不同的框架间共享模型,例如我们可以导出由 PyTorch 构建的模型,并将它们导入到 Caffe2。


通过 ONNX 和 Caffe2,使用 PyTorch 构建的研究结果可以快速地转化到生产中。而且昨日发布的 PyTorch 1.0 预览版也标志着 PyTorch 开始走向成熟,很多 API 接口和框架结构也都会变得更加稳定,这些都非常有利于将 PyTorch 应用于实际生产中。


性能对比


这两种深度学习框架都有各自的特点,那么它们在相同硬件(GPU)上运行相同神经网络的性能又怎么样?Ilia Karmanov 在 GitHub 上开源了一项测试,他在相同的环境下测试由不同框架编写的相同模型,并借此讨论不同框架的性能。从这些数据中,我们可以了解到在性能上,TensorFlow 和 PyTorch 并不会有显著的差别,不过在特定的任务上还是有一些不同。


项目地址:https://github.com/ilkarman/DeepLearningFrameworks


以下展示了使用 VGG 在 CIFAR-10 上实现图像分类的速度:


微信图片_20211130111511.jpg


以下展示了 DenseNet-121 在 ChestXRay 数据集上的训练速度,在这个图像识别任务中,PyTorch 要比 TensorFlow 表现得更好一些:


微信图片_20211130111515.jpg

如下展示了在 IMDB 数据集上训练门控循环单元(GRU)的速度,它们实现的是情感分析任务。对于循环神经网络,PyTorch 和 TensorFlow 的性能差不多,不过 PyTorch 在 P100 芯片上普遍表现得比 TensorFlow 好。


微信图片_20211130111519.jpg


该项目还有更多的对比与分析,感兴趣的读者可查看原 GitHub 项目。微信图片_20211130092842.png


相关文章
|
5月前
|
机器学习/深度学习 分布式计算 PyTorch
Tensorflow、Pytorch、
Tensorflow、Pytorch、Horovod、Spark、JupyterLab、TF-Serving、Triton等。 是什么,怎么用,推荐demo
93 40
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
|
7天前
|
机器学习/深度学习 数据可视化 PyTorch
TensorFlow与PyTorch框架的深入对比:特性、优势与应用场景
【5月更文挑战第4天】本文对比了深度学习主流框架TensorFlow和PyTorch的特性、优势及应用场景。TensorFlow以其静态计算图、高性能及TensorBoard可视化工具适合大规模数据处理和复杂模型,但学习曲线较陡峭。PyTorch则以动态计算图、易用性和灵活性见长,便于研究和原型开发,但在性能和部署上有局限。选择框架应根据具体需求和场景。
|
22天前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow与PyTorch在Python面试中的对比与应用
【4月更文挑战第16天】这篇博客探讨了Python面试中TensorFlow和PyTorch的常见问题,包括框架基础操作、自动求梯度与反向传播、数据加载与预处理。易错点包括混淆框架API、动态图与静态图的理解、GPU加速的利用、模型保存恢复以及版本兼容性。通过掌握这些问题和解决策略,面试者能展示其深度学习框架技能。
35 9
|
24天前
|
机器学习/深度学习 PyTorch TensorFlow
NumPy与TensorFlow/PyTorch的集成实践
【4月更文挑战第17天】本文探讨了NumPy与主流深度学习框架TensorFlow和PyTorch的集成实践,阐述了它们如何通过便捷的数据转换提升开发效率和模型性能。在TensorFlow中,NumPy数组可轻松转为Tensor,反之亦然,便于原型设计和大规模训练。PyTorch的张量与NumPy数组在内存中共享,实现无缝转换。尽管集成带来了性能和内存管理的考量,但这种结合为机器学习流程提供了强大支持,促进了AI技术的发展。
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow、PyTorch、Keras、Scikit-learn和ChatGPT。视觉开发软件工具 Halcon、VisionPro、LabView、OpenCV
TensorFlow、PyTorch、Keras、Scikit-learn和ChatGPT。视觉开发软件工具 Halcon、VisionPro、LabView、OpenCV
37 1
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
Python中的深度学习:TensorFlow与PyTorch的选择与使用
Python中的深度学习:TensorFlow与PyTorch的选择与使用
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow vs PyTorch:深度学习框架的比较研究
TensorFlow vs PyTorch:深度学习框架的比较研究
37 1
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
PyTorch搭建图卷积神经网络(GCN)完成对论文分类及预测实战(附源码和数据集)
PyTorch搭建图卷积神经网络(GCN)完成对论文分类及预测实战(附源码和数据集)
161 1
|
5月前
|
机器学习/深度学习 PyTorch TensorFlow
一文带你了解 三种深度学习框架(Caffe,Tensorflow,Pytorch)的基本内容、优缺点以及三者的对比
一文带你了解 三种深度学习框架(Caffe,Tensorflow,Pytorch)的基本内容、优缺点以及三者的对比
182 1