PyTorch、TensorFlow最新版本对比,2021年了你选谁?

作者: 机器之心 2021-05-24 15:28:55

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

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

在本文中,我们将从以下两个方面对机器学习库(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。该框架可以量化、跟踪、优化和保存适用于 Android 和 iOS 的模型。此外还发布了 Pytorch Lite Interpreter 的原型,该原型可减小移动设备上二进制运行时的大小。此外,还通过更具体的错误处理和 pipeline 并行为分布式训练提供了更多支持。Pytorch Profiler 用于分析 APP、模型的执行时间、执行流程、内存消耗等。

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

该如何选择?

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

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

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

在某些情况下,需要在特定的机器学习领域中寻找特定的模型。例如,当进行目标检测比赛时,想要实现 DETR(Facebook 的 Data-Efficient transformer),结果发现大部分资源都是用 PyTorch 编写的,因此在这种情况下,使用 PyTorch 更加容易。另外,PyTorch 的代码实现更长,因为它们涵盖了许多底层细节。这既是优点也是缺点。当你是初学者时先学习低层级的细节,然后再使用更高层级的 API(例如 Keras)非常有帮助。但是,这同时也是一个缺点,因为你会发现自己迷失于许多细节和相当长的代码段中。因此,从本质上讲,如果你的工作期限很紧,最好选择 Keras 而不是 PyTorch。

机器学习 人工智能 计算机
上一篇:AI聊天机器人,你想来一个吗? 下一篇:为什么可视化平台对安全运营中心(SOC)至关重要?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

面部识别的利与弊:是福还是祸?

虽然现代技术使面部识别更加精确和安全,但与面部识别隐私问题和监控有关的担忧也在增加。因此,让我们在这篇文章中探讨一下这该技术的利与弊。

Naveen Joshi ·  2021-06-01 16:36:22
人工智能和5G如何结合以实现物联网收入最大化

网络系统通过信令和使用软件以及分析来检测和分类设备非常棘手,并且对有限且日益紧张的网络资源提出了巨大的需求。然而,解决这些问题有一个主要解决方案:采用人工智能、自动化和5G技术。

Jordi Castellvi ·  2021-06-01 13:49:15
MIT团队最新研究,仅靠LiDAR和2D地图实现端到端自动驾驶

最近, MIT 计算机科学与人工智能实验室(CSAIL)团队成功展示了一种基于机器学习的自动驾驶系统,该端到端框架仅使用 LiDAR获取的原始 3D 点云数据和类似于手机上的低分辨率 GPS 地图就能进行自主导航,并且大大提升了鲁棒性。

文龙 ·  2021-06-01 12:47:51
自然语言处理(NLP)的历史及其发展方向

自然语言处理的历史是一个充满曲折的故事。它从徒劳的研究开始,经过多年卓有成效的工作,最后结束于一个我们仍在试图找出该领域极限的时代。今天,让我们来一起探索这一AI科学分支的发展。

佚名 ·  2021-06-01 12:46:26
是福还是祸?人脸识别技术的利与弊

面部识别并不是一项全新的技术,但人工智能和机器学习不断使面部识别变得更好。苹果通过引入具有 3D 扫描功能的面部生物识别系统和 iPhone 的 Face ID,提高了面部识别的标准。

Naveen Joshi ·  2021-06-01 11:11:01
人工智能能否使机器具有流体智力?

麻省理工学院和奥地利研究人员为灵活的人工智能创造了“液体”机器学习。

千家网 ·  2021-06-01 10:38:55
高真实感、全局一致、外观精细,面向模糊目标的NeRF方案出炉

自 NeRF 被提出后,有多项研究对其加以改进。在本篇论文中,上海科技大学的研究者提出了首个将显式不透明监督和卷积机制结合到神经辐射场框架中以实现高质量外观的方案。

Haimin Luo等 ·  2021-06-01 09:57:39
大脑模拟NLP,高德纳奖得主:神经元集合演算用于句子解析

一个简单的大脑模型为人工智能研究提供了新的方向。世界顶尖计算机科学理论学家、哥德尔奖和高德纳奖获得者、哥伦比亚大学计算机科学教授 Christos Papadimitriou 关于「大脑中单词表征」的演讲。

Ben Dickson ·  2021-06-01 09:39:24
Copyright©2005-2021 51CTO.COM 版权所有 未经许可 请勿转载