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

OpenCV学堂 2022-01-05 17:24



点击上方↑↑↑OpenCV学堂”关注我

来源:公众号 新智元 授权


【导读】用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/



OpenCV学堂 专注计算机视觉开发技术分享,技术框架使用,包括OpenCV,Tensorflow,Pytorch教程与案例,相关算法详解,最新CV方向论文,硬核代码干货与代码案例详解!作者在CV工程化方面深度耕耘15年,感谢您的关注!
评论
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 93浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 117浏览
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 44浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 152浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 101浏览
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 51浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 137浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 209浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 92浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 195浏览
  • 「他明明跟我同梯进来,为什么就是升得比我快?」许多人都有这样的疑问:明明就战绩也不比隔壁同事差,升迁之路却比别人苦。其实,之间的差异就在于「领导力」。並非必须当管理者才需要「领导力」,而是散发领导力特质的人,才更容易被晓明。许多领导力和特质,都可以通过努力和学习获得,因此就算不是天生的领导者,也能成为一个具备领导魅力的人,进而被老板看见,向你伸出升迁的橘子枝。领导力是什么?领导力是一种能力或特质,甚至可以说是一种「影响力」。好的领导者通常具备影响和鼓励他人的能力,并导引他们朝着共同的目标和愿景前
    优思学院 2025-01-08 14:54 47浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 115浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 160浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 108浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 84浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦