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

    文章

    763

    浏览量

    12836

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

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

收藏 人收藏

    评论

    相关推荐

    XLA和PyTorch的链接代码示例

    XLA (Accelerated Linear Algebra)是一个开源的机器学习编译器,对PyTorchTensorflow、JAX等多个深度学习框架都有支持。最初XLA实际上
    的头像 发表于 11-17 10:54 341次阅读

    PyTorchTensorFlow的优点和缺点

    转载自:冷冻工厂   深度学习框架是简化人工神经网络 (ANN) 开发的重要工具,并且其发展非常迅速。其中,TensorFlowPyTorch 脱颖而出,各自在不同的机器学习领域占有一席之地
    的头像 发表于 10-30 09:56 507次阅读
    <b class='flag-5'>PyTorch</b>与<b class='flag-5'>TensorFlow</b>的优点和缺点

    PyTorchTensorFlow的区别分析

    PyTorch是一个开源的深度学习框架,建立于Torch之上,底层为C++,并标榜Python First,强调其为Python 语言量身打造的,使用上就与Python项目的撰写并没有太大的差异,也能够与Python的套件相整合。
    发表于 10-27 10:41 743次阅读
    <b class='flag-5'>PyTorch</b> 与 <b class='flag-5'>TensorFlow</b>的区别分析

    pytorch模型转换需要注意的事项有哪些?

    什么是JIT(torch.jit)? 答:JIT(Just-In-Time)是一组编译工具,用于弥合PyTorch研究与生产之间的差距。它允许创建可以在不依赖Python解释器的情况下运行的模型
    发表于 09-18 08:05

    如何往星光2板子里装pytorch

    如题,想先gpu版本的pytorch只安装cpu版本的pytorch,pytorch官网提供了基于conda和pip两种安装方式。因为咱是risc架构没对应的conda,而使用pip安装提示也没有
    发表于 09-12 06:30

    使用PyTorch加速图像分割

    使用PyTorch加速图像分割
    的头像 发表于 08-31 14:27 495次阅读
    使用<b class='flag-5'>PyTorch</b>加速图像分割

    深度学习算法的选择建议

    常重要的。本文将提供一些选择建议,以及如何决定使用哪种框架和算法。 首先,选择框架。目前,深度学习领域最流行和使用最广泛的框架有TensorFlowPyTorch、Keras和Caf
    的头像 发表于 08-17 16:11 388次阅读

    深度学习框架pytorch介绍

    深度学习框架pytorch介绍 PyTorch是由Facebook创建的开源机器学习框架,其中TensorFlow是完全基于数据流图的。它是一个使用动态计算图的框架,允许用户更灵活地定义和修改模型
    的头像 发表于 08-17 16:10 1146次阅读

    深度学习框架pytorch入门与实践

    深度学习框架pytorch入门与实践 深度学习是机器学习中的一个分支,它使用多层神经网络对大量数据进行学习,以实现人工智能的目标。在实现深度学习的过程中,选择一个适用的开发框架是非常关键
    的头像 发表于 08-17 16:03 1205次阅读

    如何将PyTorch模型与OpenVINO trade结合使用?

    无法确定如何转换 PyTorch 掩码 R-CNN 模型以配合OpenVINO™使用。
    发表于 08-15 07:04

    如何使用TensorFlow将神经网络模型部署到移动或嵌入式设备上

    使用TensorFlow的transform_graph工具生成一个优化的8位模型,模型效率更高,但精度较低。 4.在设备上对优化的模型进行基准测试,并选择最符合您部署需求的模型。 本教程使用预训练
    发表于 08-02 06:43

    PyTorch教程23.5之选择服务器和GPU

    电子发烧友网站提供《PyTorch教程23.5之选择服务器和GPU.pdf》资料免费下载
    发表于 06-06 09:17 0次下载
    <b class='flag-5'>PyTorch</b>教程23.5之<b class='flag-5'>选择</b>服务器和GPU

    PyTorch教程-13.2. 异步计算

    改变。MXNet 和 TensorFlow 等深度学习框架采用 异步编程模型来提高性能,而 PyTorch 使用 Python 自己的调度程序导致不同的性能权衡。对于 PyTorch,默认情况下,GPU 操作是异步的。当您调用
    的头像 发表于 06-05 15:44 433次阅读
    <b class='flag-5'>PyTorch</b>教程-13.2. 异步计算

    PyTorch教程-2.5. 自动微分

    2.5. 自动微分¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab [jax
    的头像 发表于 06-05 15:38 315次阅读

    PyTorch教程2.5之自动微分

    电子发烧友网站提供《PyTorch教程2.5之自动微分.pdf》资料免费下载
    发表于 06-05 11:38 0次下载
    <b class='flag-5'>PyTorch</b>教程<b class='flag-5'>2.5</b>之自动微分