来源:机器学习研究组订阅

用PyTorch还是TensorFlow,对于大部分深度学习从业者来说真是一个头疼的问题。最近Reddit上有个帖子从三个方面对比了两个框架,结果竟然是平手?

你用PyTorch还是用TensorFlow?

对于不同人群可能有不同的答案,科研人员可能更偏爱PyTorch,因其简单易用,能够快速验证idea来抢占先机发论文。

虽然TensorFlow的差评如海,甚至有用户专门注册一个GitHub账号开个issue来骂TensorFlow,但TensorFlow在工业界大哥的地位PyTorch仍然无法撼动。

所以,进入2022年,你决定用PyTorch还是TensorFlow?

旷日持久的甜咸之争

早在2015年11月9日,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)就开放了源代码,其前身是谷歌的神经网络算法库DistBelief。TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现。

到了2017年1月,由Facebook人工智能研究院(FAIR,现在是MAIR)基于Torch推出了PyTorch,主要提供两个高级功能:

  1. 具有强大的GPU加速的张量计算(如NumPy)

  2. 包含自动求导系统的深度神经网络

最近Reddit上关于TensorFlow和PyTorch的讨论又引起了网友的关注。

题主表示,两个框架和他们对应的两种生态系统发展的都是如此迅速,每个阵营都有自己的狂热支持者,也许是时候分析一下他们到底有什么不同了。

目前来说,PyTorch仍然是「研究型」框架,TensorFlow仍然是「工业型」框架,他们之间的争论主要可以归结为三个因素:模型可用性、模型部署、软件生态。

模型可用性

随着深度学习领域的逐年扩大,模型也变得越来越大,从头开始训练sota模型的成本太高,微调已经成为新主流。所以公开的sota模型采用什么框架对于后续的社区生态来说很重要。

在模型可用性方面,PyTorch 和 TensorFlow 分歧很大,PyTorch 和 TensorFlow 都有自己的官方模型存储库,但从业者可能希望利用多个来源的模型。

目前,PyTorch明显在研究领域已经赢麻了,大部分科研人员都在用,并且大多数出版论文和开源模型都在使用 PyTorch。

将过去几年八种顶级研究期刊的数据汇总以后可以看到,PyTorch越来越普遍,并且在短短几年内,论文中的使用率从大约 7% 增长到近 80%。

虽然2019 年发布的 TensorFlow 2 中解决了大部分TensorFlow残存的问题,但 PyTorch 的发展势头足以让它维持自己在研究领域的地位,至少从社区的角度来看是这样。

在Papers with Code网站上的论文中,大部分都使用的是PyTorch框架,并且还在逐渐上升,TensorFlow的市场份额在逐年下降。在过去的三个月里,总共创建了 4,500 个存储库中,其中60%使用 PyTorch 实现,只有11%使用 TensorFlow。

虽然研究主流是PyTorch,但也有例外,Google、DeepMind显然都用TensorFlow来进行研究,OpenAI的一些旧的baseline也都是TensorFlow,直到2020年才全换到PyTorch。

模型部署

如果不能投入生产使用,那训练性能再好的模型都毫无意义。

所以,如何更有效率地完成模型部署至关重要,尤其是随着微服务业务模型的日益普及,高效的部署有可能决定以AI为核心竞争力的公司的成败问题。

TensorFlow 自成立以来一直是面向部署的应用程序的首选框架,TensorFlow Serving和TensorFlow Lite可让用户轻松地在云、服务器、移动设备和 IoT 设备上进行部署。

各大公司在招聘深度学习工程师时,大部分都要求掌握TensorFlow框架。

从部署的角度来看,PyTorch 过去非常乏善可陈,但近年来它也一直致力于缩小这一差距,例如接连推出的TorchServe和PyTorch Live提供了本地部署工具,但仍然只针对移动端,许多部署工具还处于起步阶段。

所以部署便捷性上,TensorFlow完胜。

生态系统

目前深度学习已不再局限于高度受控环境中的特定用例,也就是说,AI可能应用在任何环境,移动端、手机端、网页端都有可能,因此一个具有更大生态系统的框架就显得很重要,它可以促进移动、本地和服务器应用程序的开发。

此外,专用机器学习硬件,例如 Google 的Edge TPU的出现则意味着从业者需要使用可以与该硬件很好地集成的框架。

PyTorch和TensorFlow的相关生态都做得很好。

PyTorch的Hub除了HuggingFace,还有官方的PyTorch Hub,包括用于音频、视觉和 NLP 的模型。它还有一些生成模型,包括用于生成名人面孔的高质量图像的GAN。

SpeechBrain是 PyTorch 的官方开源语音工具包,支持 ASR、说话人识别、验证和分类等。如果您不想构建任何模型,而是想要一个具有自动章节、情感分析、实体检测等功能的即插即用工具,也是十分方便!

PyTorch Lightning有时被称为 PyTorch 的 Keras,可以简化 PyTorch 中模型工程和训练过程,自 2019 年首次发布以来,已经逐渐成熟。Lightning 以面向对象的方式处理建模过程,定义了一些可重用和可跨项目使用的共享组件。

还有分布式训练工具TorchElastic,可管理工作进程并协调重启行为,以便用户可以在计算节点集群上训练模型,这些节点可以动态变化而不会影响训练,还可防止因服务器维护事件或网络问题等问题而导致的宕机,并且不会因此丢失训练进度。

TorchX是一个用于快速构建和部署机器学习应用程序的 SDK。TorchX 包括 Training Session Manager API,可将分布式 PyTorch 应用程序启动到受支持的调度程序上。它负责启动分布式作业,同时原生支持由 TorchElastic本地管理的作业。

在TensorFlow阵营,TensorFlow Hub是一个经过训练的机器学习模型库,可以进行微调,用户只需几行代码就可以使用像 BERT 这样的模型,Hub中包含适用于不同用例的 TensorFlow、TensorFlow Lite 和 TensorFlow.js 模型,模型可用于图像、视频、音频和文本问题。

TensorFlow Extended是 TensorFlow 用于模型部署的端到端平台,用户可以加载、验证、分析和转换数据;训练和评估模型;使用 Serving 或 Lite 部署模型;然后跟踪工件及其依赖项。TFX 可以与 Jupyter 或 Colab 一起使用,并且可以使用 Apache Airflow / Beam或 Kubernetes 进行编排。TFX 与Google Cloud紧密集成,可与 Vertex AI Pipelines 一起使用。

MediaPipe是用于构建多模式、跨平台应用机器学习管道的框架,可用于人脸检测、多手跟踪、对象检测等。该项目是开源的,并绑定了多种语言,包括 Python、C++ 和 JavaScript。

TensorFlow.js是一个用于机器学习的 JavaScript 库,允许您使用 Node.js 在浏览器和服务器端训练和部署模型。

TensorFlow Cloud可让用户将本地环境连接到 Google Cloud。提供的 API 能够弥补从本地机器上的模型构建和调试到 GCP 上的分布式训练和超参数调整之间的差距,而无需使用 Cloud Console。

Google Colab是一个基于云的笔记本环境,与 Jupyter 非常相似。将 Colab 连接到 Google Cloud 进行 GPU 或 TPU 训练很容易,并且PyTorch 也可以与 Colab 一起使用。

三项对此完,这两个框架可以说是神仙打架了,各有优劣。

但评论区也有网友表示,我一只脚踏入工业界,但另一只脚还在学术界,不过我在教课的时候还是选择PyTorch,因为TF太不可靠了,接口总是变,尤其是从TF1迁移到TF2的时候。

并且在公司也同样使用PyTorch,因为灵活性更重要。

如果看完上面的讨论,你还不知道怎么选择适合自己的框架,那英雄联盟中的一位英雄台词或许能对这场甜咸之争带来终极答案。

要问我更喜欢什么工具,未免太幼稚了,但我的锤子是我最喜欢的。

参考资料:

https://www.reddit.com/r/MachineLearning/comments/rga91a/d_are_you_using_PyTorch_or_TensorFlow_going_into/

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

谁是深度学习框架一哥?2022 年,PyTorch 和 TensorFlow 再争霸相关推荐

  1. 深度学习框架(如:Pytorch、Tensorflow、Caffe...)

    文章目录 一.深度学习框架由来 二.各个深度学习框架 2.1.TensorFlow(Google) 2.2.Theano(蒙特利尔大学) 2.3.Torch(NYU/Facebook) 2.4.PyT ...

  2. 阿里深度学习框架开源了!无缝对接TensorFlow、PyTorch

    阿里巴巴内部透露将开源内部深度学习框架 X-DeepLearning的计划,这是业界首个面向广告.推荐.搜索等高维稀疏数据场景的深度学习开源框架,可以与TensorFlow.PyTorch 和 MXN ...

  3. 掌握深度学习,为什么要用PyTorch、TensorFlow框架?

    作者 | Martin Heller 译者 | 弯月 责编 | 屠敏 来源 | CSDN(ID:CSDNnews) [导读]如果你需要深度学习模型,那么 PyTorch 和 TensorFlow 都是 ...

  4. 清华开源 Jittor:首个国内高校自研深度学习框架,一键转换 PyTorch

    点击上方"视学算法",马上关注 真爱,请设置"星标"或点个"在看" 来源 | 机器之心 继 Theano.Caffe 之后,又一个由高校主导 ...

  5. 清华开源Jittor:首个国内高校自研深度学习框架,一键转换PyTorch

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来源:机器之心@微信公众号 继 Theano.Caffe 之后,又一个由高校主导的 ...

  6. OpenAI高调站队:深度学习框架以后主要用PyTorch

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 对于深度学习框架的使用,整个人工智能社区大体可以分为两大阵营:TensorFlow ...

  7. 掌握深度学习,为什么要用 PyTorch、TensorFlow 框架?

    全世界只有3.14 % 的人关注了 爆炸吧知识 自从2012年深度学习再一次声名鹊起以来,许多机器学习框架都争先恐后地要成为研究人员和行业从业者的新宠.面对如些众多的选择,人们很难判断最流行的框架到底 ...

  8. 深度学习框架排行榜:找工作学TensorFlow,PyTorch搜索量逼近Keras

    深度栗 编译整理 量子位 报道 | 公众号 QbitAI 深度学习的世界,风云变幻. 五年前,还是Theano称霸的天下,如今完全不一样的了. 所以,一个叫Jeff Hale的数据科学家,想全方位观察 ...

  9. 深度学习框架的比较(MXNet, Caffe, TensorFlow, Torch, Theano)

    1. 基本概念 1.1 MXNet相关概念 深度学习目标:如何方便的表述神经网络,以及如何快速训练得到模型 CNN(卷积层):表达空间相关性(学表示) RNN/LSTM:表达时间连续性(建模时序信号) ...

最新文章

  1. mysql分组函数按月份差,学习猿地-mysql如何按月份分组查询
  2. MATLAB实现直方图均衡化与规定化
  3. 【总结整理】JQuery基础学习---DOM篇
  4. 2给我背书_让优秀的人做你的背书人
  5. Django框架深入了解_02(DRF之序列化、反序列化)
  6. python读取数据流_python3+pyshark读取wireshark数据包并追踪telnet数据流
  7. MaxCompute 存储设计
  8. C++版本 ORM 访问数据库之ODB 的oracle Demo测试(二)
  9. 从零开始的全栈工程师——underscore
  10. Python发送POST request payload形式的请求
  11. [MySQL FAQ]系列 -- MySQL怎么有时候像是多进程,有时候却是多线程
  12. hive元数据为什么使用Mysql?不使用默认的Derby
  13. Python-字典遍历
  14. angular组件图标无法显示的问题
  15. paip.c#.net自定义图像窗体form
  16. 正则Regex中圆括号()方括号[]大括号{}的区别和用法
  17. linux 执行sql loader,sql loader使用例子
  18. Chrome浏览器安装vue插件(附插件下载地址)
  19. 【MySQL】源码编译MySQL8.x+升级gcc+升级cmake(亲测完整版)
  20. ettercap无线局域网内DNS欺骗实例

热门文章

  1. 如何制造一台计算机,编程多年后我开始思考这个问题
  2. 安全领域多位世界级权威的智慧结晶——《黑客新型攻击防范:深入剖析犯罪软件》
  3. 图像生成之扩散模型:靠加入类别条件,效果直达SOTA
  4. 张亚勤:深度学习更近一步,如何突破香农、冯诺依曼和摩尔瓶颈?
  5. 独家 | 快速掌握spacy在python中进行自然语言处理(附代码链接)
  6. 剑指offer: 二进制中1的个数 python 实现
  7. IJCAI 2020 已线上开奖!周志华、张成奇还将分别担任2021程序主席和2024大会主席...
  8. 90后清华女孩:博二开始研究世界级难题,3年发5篇Science,现入选中国榜“35岁以下科技创新35人”!...
  9. 图像与视频合成领域的集大成者,都在这里了!
  10. mysql 用户 多主机_MySQL单主机多实例部署