0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PyTorch1.8和Tensorflow2.5该如何选择?

阿铭linux 来源:towards data science 作者:Mostafa Ibrahim 2021-07-09 10:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

深度学习重新获得公认以来,许多机器学习框架层出不穷,争相成为研究人员以及行业从业人员的新宠。从早期的学术成果 Caffe、Theano,到获得庞大工业支持的 PyTorch、TensorFlow,许多研究者面对大量的学习框架不知该如何选择?

Tensorflow / Keras 和 PyTorch 是迄今为止最受欢迎的两个主要机器学习库。TensorFlow 由谷歌团队开发,于 2015 年发布。而 PyTorch 则由 Facebook 的团队开发,并于 2017 年在 GitHub 上开源。

为了充分发挥不同机器学习框架的优势,许多机器学习从业者对不同框架进行了比较,通过对比优缺点,以选择最适合自己的框架。

在本文中,我们将从以下两个方面对机器学习库(PyTorch 1.8 和 Tensorflow 2.5)进行比较:

最新发行版本中的新增功能;

使用哪个以及为什么。

Tensorflow 2.x VS Pytorch 1.8

Tensorflow 2.x

TensorFlow 1 和 TensorFlow 2.x 之间有很多变化。第一个是 Tensorflow.js. 的发布。随着 Web 应用程序越来越占主导地位,在浏览器上部署模型的需求大大增加。借助 Tensorflow.js,你可以使用 Node 在浏览器中运行现有的 python 模型、重新训练现有的模型,并使用 Javascript 完全构建和训练模型(不需要 python)。

Tensorflow 2.x 中的另一个版本是 Tensorflow Lite,一个轻量级库,用于在移动和嵌入式设备上部署模型。这是因为移动和 Web 应用程序是两种最主要的应用程序类型。

使用 Tensorflow Lite,你可以简单地将现有模型转换为「compressed flat buffer」,然后将 buffer 加载到移动设备或任何其他嵌入式设备中。这期间发生的主要优化过程是将 32 位浮点值转换成 8 位,这更适合于嵌入式设备(更少的内存使用)。

此外还包括 Tensorflow Extended(TFX)的发布,它是用于部署生产 ML pipeline 的端到端平台。其在机器学习的 3 个最重要领域(web 应用程序、移动应用程序和生产管理)方面做得很好。

机器学习生产 pipeline 仍需要大量研究和开发。TFX 可以应对经典的软件生产挑战,例如可扩展性、可维护性和模块化。此外,它还可以帮助解决机器学习的特定挑战,例如持续在线学习、数据验证,数据管理等。

PyTorch 1.8

与 Tensorflow Lite 相似,PyTorch 改进了其现有的 Pytorch Mobile。该框架可以量化、跟踪、优化和保存适用于 AndroidiOS 的模型。此外还发布了 Pytorch Lite Interpreter 的原型,该原型可减小移动设备上二进制运行时的大小。

此外,还通过更具体的错误处理和 pipeline 并行为分布式训练提供了更多支持。Pytorch Profiler 用于分析 APP、模型的执行时间、执行流程、内存消耗等。

尽管 Pytorch lightning 不是 PyTorch 1.8 的一部分,但还是值得一提。Pytorch lightning 已发布,可以使编码神经网络更加简单。可以将其视为 Pytorch 的 Keras,使用广泛,其中的原因可归结为 Keras 显著的改进了 Tensorflow,因为它使实现模型变得更加容易和快捷。在 Pytorch 中,Pytorch lightning 起到了相同的作用。

该如何选择?

从本质上讲,这两个库都是相当不错的,它们在性能和功能上非常接近。总的来说,两个库之间的编码风格有所不同。

PyTorch 以其 OOP(面向对象编程)风格而闻名。例如,当创建自定义模型或自定义数据集时,你很可能会创建一个新类,该类继承默认的 PyTorch 库,然后在进行代码调整。尽管 OOP 以某种方式为代码提供了一种结构,但就代码行数而言,会使代码变得很长。

另一方面,当使用 Tensorflow 时,你很可能会使用 Keras。例如在进行 Kaggle 比赛时(监督学习图像分类、目标检测、图像分割、NLP 等任务),可以发现 Keras 的代码实现比 PyTorch 短。作为初学者 / 中级人员,这是非常不错的选择,因为你不必花费大量时间阅读和分解代码行。

在某些情况下,需要在特定的机器学习领域中寻找特定的模型。例如,当进行目标检测比赛时,想要实现 DETR(Facebook 的 Data-Efficient transformer),结果发现大部分资源都是用 PyTorch 编写的,因此在这种情况下,使用 PyTorch 更加容易。

另外,PyTorch 的代码实现更长,因为它们涵盖了许多底层细节。这既是优点也是缺点。当你是初学者时先学习低层级的细节,然后再使用更高层级的 API(例如 Keras)非常有帮助。但是,这同时也是一个缺点,因为你会发现自己迷失于许多细节和相当长的代码段中。因此,从本质上讲,如果你的工作期限很紧,最好选择 Keras 而不是 PyTorch。

原文链接:https://towardsdatascience.com/pytorch-vs-tensorflow-2021-d403504d7bc3

文章转自机器之心

(版权归原作者所有,侵删)

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • pytorch
    +关注

    关注

    2

    文章

    813

    浏览量

    14688

原文标题:PyTorch 1.8 和 Tensorflow 2.5,我该用哪个?

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【上海晶珩睿莓1开发板试用体验】TensorFlow-Lite物体归类(classify)

    目前尚未得知睿莓1开发板上面有NPU或者DPU之类的额外处理器,因此使用树莓派系列使用最广泛的TensorFlow-Lite库进行物体归类,使用CPU运行代码,因此占用的是CPU的算力。在
    发表于 09-12 22:43

    无法将Tensorflow Lite模型转换为OpenVINO™格式怎么处理?

    Tensorflow Lite 模型转换为 OpenVINO™ 格式。 遇到的错误: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostProcess node.
    发表于 06-25 08:27

    如何选择 边缘计算服务器

    延迟≤50ms; 视频分析、AI推理类需求侧重‌算力密度‌,建议选择支持16TOPS以上算力且兼容TensorFlow/PyTorch框架的服务器(如RK3588芯片平台); 教育、医疗等敏感数据处理场景,需内置国密加密芯片并支
    的头像 发表于 05-06 07:58 521次阅读
    如何<b class='flag-5'>选择</b> 边缘计算服务器

    《RK3588核心板:AIoT边缘计算的革命性引擎,能否解锁智能物联新范式?》

    学习模型,实现毫秒级响应。 功能亮点与场景示例: 多模态AI融合:支持TensorFlowPyTorch等主流框架模型部署,可应用于智能零售中的行为识别系统,通过摄像头+红外传感器数据融合,精准分析
    发表于 04-02 10:26

    用树莓派搞深度学习?TensorFlow启动!

    介绍本页面将指导您在搭载64位Bullseye操作系统的RaspberryPi4上安装TensorFlowTensorFlow是一个专为深度学习开发的大型软件库,它消耗大量资源。您可以在
    的头像 发表于 03-25 09:33 959次阅读
    用树莓派搞深度学习?<b class='flag-5'>TensorFlow</b>启动!

    可以使用OpenVINO™工具包将中间表示 (IR) 模型转换为TensorFlow格式吗?

    无法将中间表示 (IR) 模型转换为 TensorFlow* 格式
    发表于 03-06 06:51

    OpenVINO™是否与TensorFlow集成支持Raspberry Pi?

    无法确定OpenVINO™是否与 TensorFlow* 集成支持 Raspberry Pi。
    发表于 03-05 08:26

    操作指南:pytorch云服务器怎么设置?

    设置PyTorch云服务器需选择云平台,创建合适的GPU实例,安装操作系统、Python及Anaconda,创建虚拟环境,根据CUDA版本安装PyTorch,配置环境变量,最后验证安装。过程中需考虑
    的头像 发表于 02-08 10:33 603次阅读

    ADS1255 MUX寄存器设置上,AINP与AINN如何选择呢?

    手册上提出最好不要接地,假如我直接基准2.5v上,或是AVDD上,有什么不同?MUX寄存器设置上,AINP与AINN如何选择呢?AINN选择AINCOM,AINP在AIN0与AIN
    发表于 01-10 07:50

    PCA9306低压供电端即使不供电,会有2.5v电压,是什么原因?

    PCA9306按照参考设计,低压供电1.8v,高压供电3.3v;实测发现高压供电3.3v后,低压供电端即使不供电,会有2.5v电压,请问是什么原因,谢谢!
    发表于 01-07 07:54

    利用Arm Kleidi技术实现PyTorch优化

    PyTorch 是一个广泛应用的开源机器学习 (ML) 库。近年来,Arm 与合作伙伴通力协作,持续改进 PyTorch 的推理性能。本文将详细介绍如何利用 Arm Kleidi 技术提升 Arm
    的头像 发表于 12-23 09:19 1615次阅读
    利用Arm Kleidi技术实现<b class='flag-5'>PyTorch</b>优化

    AD7124-8内部校准时,是不是只能选择内部的2.5V参考源?

    AD7124-8内部校准时,是不是只能选择内部的2.5V参考源?测试发现如果是外部参考电阻的方式,校准后的增益总是为0。另外,多个通道使能了,芯片能不能自动完成所有通道的校准?
    发表于 12-19 06:54

    LSF0108的1.8V参考电平异常的原因?怎么解决?

    LSF0108的1.8V使用的是TLV70218,3.3V使用的是1117-3.3 原理如下图所示 测试1.8V这端始终是2.5V。断开A端的这个1.8V,单独测试TLV7021
    发表于 12-19 06:37

    vLLM项目加入PyTorch生态系统,引领LLM推理新纪元

    近日,vLLM项目宣布正式成为PyTorch生态系统的一部分,标志着该项目与PyTorch的合作进入了一个全新的阶段。本文将从以下几个方面进行介绍,特别提醒:安装方案在第四个部分,可选择性阅读
    的头像 发表于 12-18 17:06 1568次阅读
    vLLM项目加入<b class='flag-5'>PyTorch</b>生态系统,引领LLM推理新纪元

    使用英特尔AI PC为YOLO模型训练加速

    在以往的实践中,当我们针对 ultralytics 的 YOLO 模型开展训练工作时,可供选择的计算设备通常局限于 CPU、mps 以及 cuda 这几种。然而,自 PyTorch2.5 版本发布
    的头像 发表于 12-09 16:14 2097次阅读
    使用英特尔AI PC为YOLO模型训练加速