Pytorch vs Tensorflow 2021

引言

Tensorflow/Keras 和 Pytorch 是目前最流行的两个主要机器学习库。Tensorflow 由 Google 维护和发布,Pytorch 则由 Facebook 维护和发布。在这篇文章中,我想从以下几个方面来比较它们:

  •  最新发布的版本中有什么新内容

  •  使用哪一个 & 为什么(基于两年的机器学习项目)

Tensorflow 2.x:

在 Tensorflow 1和 Tensorflow 2. x 之间有很多变化,现在我们将介绍一些最重要的变化。

第一个是 Tensorflow.js 的发布。随着 web 应用越来越占主导地位,在浏览器上部署模型的需求也越来越大。使用 Tensorflow.js,你可以使用 Node 在浏览器中运行现有的 python 模型,重新训练现有的模型,并完全使用 Javascript 构建和训练您自己的模型。

第二个是Tensorflow Lite,它是一个“用于在移动设备和嵌入式设备上部署模型的轻量级库”。这是非常有用的,因为移动和网络应用是两种最主要的应用类型。使用 Tensorflow Lite,你可以简单地将您现有的模型转换为“压缩缓冲区”,并将该缓冲区加载到移动设备或任何其他嵌入式设备中。主要的优化过程是将32位浮点数转换成8位浮点数,这样更适合于嵌入式设备(更少的内存使用)。

最后一个则是Tensorflow Extended (TFX) ,它是一个用于部署生产 ML 管道的端到端平台。我不得不承认,他们在机器学习的三个最重要的领域(网络应用程序、移动应用程序和生产管理)做得很好。ML 生产管道仍然需要大量的研究和开发。TFX 帮助解决经典的软件生产挑战,例如可伸缩性、可维护性和模块性。此外,它还有助于解决机器学习特有的挑战,如持续在线学习、数据验证、数据管理等等。

Pytorch 1.8:

类似于Tensorflow Lite,Pytorch也改进了其现有的Pytorch Mobile。框架可以量化,跟踪,优化和保存适用于Android和iOS的模型。他们还发布了Pytorch Lite解释器的原型,该原型可减小移动设备上二进制运行时的大小。

此外,他们还为分布式训练增加了更多的支持,提供了更具体的错误处理和流水线并行性。最后,他们介绍了 Pytorch Profiler,这是一个用于调试和排除大规模深度学习模型故障的工具。

使用哪一个?

相信每个人都会有这个疑问,那就是我该使用哪个框架呢?再过去的两年里,每当我开始一个机器学习项目的时候,我都会对这个问题感到疑惑。下面我将简单地回顾一下我的经历,并提供一些如何在两者之间做出选择的建议。

从本质上讲,这两个库相当不错,它们在性能和提供的功能上非常接近。总的来说,你必须意识到两种之间的编码风格有所不同,而这正是你从事机器学习项目时实际上有所不同的原因。

Pytorch 以面向对象编程风格而闻名。例如,当你创建自定义模型或自定义数据集时,你很可能会创建一个继承默认 PyTorch 库的新类,然后调整自己的方法。就我个人而言,我不是 OOP 的忠实粉丝。尽管它以某种方式为代码提供了一个结构,但它使得实现的代码行数大大增加。

另一方面,当使用 Tensorflow 时,你很可能会使用 Keras。我发现在 Kaggle 竞赛中 Keras 的实现比 Pytorch 的要短(监督图像分类,目标检测分类,图像分割分类,NLP 等等).作为一个初学者这是很好的,因为你不需要花很多时间阅读和理解代码行。

在某些情况下,你将在特定的机器学习子领域中寻找特定的模型。以我的经验来看,你很可能是只需要一个对该模型支持更多的库。仅仅是因为该模型最开始是在这里实现的,后续的改进也是在此基础上进行的。

最后就是,我发现 pytorch 的实现更长,因为它涵盖了许多细节,这既是一个优点,也是一个缺点。有了更多细节的实现,我们可以更好地学习理解深度学习的框架。然而这也是一个缺点,你会发现自己迷失在许多细节和很长的代码断中。因此,当你的任务很着急的时候,最好还是选择Keras而不是Pytorch。

总结

本文简单地介绍了最新版 tensorflow 和 pytorch 之间的区别,以及我在项目选择时的建议。一千人眼里有一千个哈姆雷特,希望我的建议能对你有一些帮助~

·  END  ·

HAPPY LIFE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值