来势汹汹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


相关文章
|
29天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
2572 3
|
2月前
|
数据挖掘 PyTorch TensorFlow
|
29天前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
38 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
29天前
|
并行计算 PyTorch TensorFlow
环境安装(一):Anaconda3+pytorch1.6.0+cuda10.0+cudnn7.6.4+tensorflow1.15+pycocotools+pydensecrf
这篇文章详细介绍了如何在Anaconda环境下安装和配置深度学习所需的库和工具,包括PyTorch 1.6.0、CUDA 10.0、cuDNN 7.6.4、TensorFlow 1.15、pycocotools和pydensecrf,并提供了pip国内镜像源信息以及Jupyter Notebook和Anaconda的基本操作。
85 0
环境安装(一):Anaconda3+pytorch1.6.0+cuda10.0+cudnn7.6.4+tensorflow1.15+pycocotools+pydensecrf
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
conda、anaconda、pip、pytorch、tensorflow有什么关联?
conda、anaconda、pip、pytorch、tensorflow有什么关联?
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow和PyTorch的实际应用比较
TensorFlow和PyTorch的实际应用比较
|
2月前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
58 0
|
2月前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
61 0
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
76 1
|
3月前
|
机器学习/深度学习 算法 PyTorch
【深度学习】TensorFlow面试题:什么是TensorFlow?你对张量了解多少?TensorFlow有什么优势?TensorFlow比PyTorch有什么不同?该如何选择?
关于TensorFlow面试题的总结,涵盖了TensorFlow的基本概念、张量的理解、TensorFlow的优势、数据加载方式、算法通用步骤、过拟合解决方法,以及TensorFlow与PyTorch的区别和选择建议。
237 2
下一篇
无影云桌面