首页 > 行业资讯 > PyTorch 教程-PyTorch vs. TensorFlow

PyTorch 教程-PyTorch vs. TensorFlow

时间:2023-12-21 来源: 浏览:

PyTorch 教程-PyTorch vs. TensorFlow

点击关注 Python架构师
Python架构师

gh_1d7504e4dee1

回复:python,领取Python面试题。分享Python教程,Python架构师教程,Python爬虫,Python编程视频,Python脚本,Pycharm教程,Python微服务架构,Python分布式架构,Pycharm注册码。

整理: python架构师

在开始一个新项目之前,了解PyTorch和TensorFlow之间的差异是必要的。在深度学习或机器学习研究中,当开发人员决定使用哪个框架时,库扮演着至关重要的角色。根据一项调查,有1616名机器学习开发人员和数据科学家使用PyTorch,而有3.4名机器学习开发人员使用TensorFlow。

我们将基于以下因素比较这两个框架:

1) 起源

PyTorch是一个基于Torch库的机器学习库。它是由Facebook的人工智能研究组为应用程序开发的,如深度学习和自然语言处理。它是一款免费且开源的软件,采用修改后的BSD许可证发布。TensorFlow也是一款开源机器学习框架,最初由Google开发。

2) 特性

PyTorch具有一些吸引人的特性,如:

  1. 对Python的本地支持

  2. 动态计算图

  3. 对CUDA的支持

这些特性确保了代码运行的时间较短并提高了性能。另一方面,TensorFlow也具有一些卓越且吸引人的特性,例如TensorBoard,在可视化机器学习模型时是一个很好的选择。它还提供TensorFlow Serving,这是一个特定的grpc服务器,在生产中进行部署时使用。

3) 社区

PyTorch的社区规模远小于TensorFlow。TensorFlow被许多不同领域的研究人员采用,如商业组织、学术界等。在TensorFlow中,更容易找到资源或解决方案。TensorFlow和PyTorch都有大量的教程、代码以及支持。

4) API水平

如果我们谈论API,那么TensorFlow是最好的,因为它提供了高级和低级API。PyTorch提供了较低级别的API,侧重于直接与数组表达式进行工作。PyTorch在过去一年中引起了极大的兴趣,并且正在成为学术研究和深度学习应用的首选解决方案,这需要优化定制表达式。

5) 速度

PyTorch和TensorFlow是两个最受欢迎的深度学习框架。PyTorch适用于在家中工作并实现第一个深度学习项目。但是TensorFlow在办公室工作且对深度学习项目有卓越知识的情况下更为适用。如果比较PyTorch和TensorFlow的速度,那么两者都提供相似的速度,非常适合性能要求。

6) 受欢迎程度

根据受欢迎程度,TensorFlow比PyTorch广泛使用。每个组织都需要具有简单且可读性强的架构,以处理大数据集的高性能执行。PyTorch比TensorFlow年轻,但在受欢迎程度上迅速增长。PyTorch允许定制,而TensorFlow不允许。TensorFlow具有最多的GitHub活动、Google搜索、Medium文章、亚马逊图书和ArXiv文章。它被大多数开发人员使用,并在大多数在线职位描述中列出。

资源分享

点击领取:最全Python资料合集

7) 上手时间

PyTorch是一个启用了GPU的NumPy插件,为构建和训练深度神经网络提供了更高级的功能。如果我们熟悉Python、NumPy和深度学习抽象,那么学习PyTorch会很容易。当编写TensorFlow代码时,它将首先通过Python将其“编译”成图,然后由TensorFlow执行引擎运行。TensorFlow需要学习一些额外的概念,如图、会话、占位符和变量作用域。TensorFlow的上手时间肯定比PyTorch长。

8) 覆盖范围

TensorFlow原生支持某些操作,例如沿某个维度翻转张量、检查张量是否包含NaN和无穷大以及快速傅立叶变换。它还有contrib包,用于创建更多的模型。它支持使用更高级别的功能,并为我们提供了广泛的选项来使用。

PyTorch目前实现的功能较少,但由于受到关注,很快就会填补这个差距。PyTorch在学习者和自由职业者中不如TensorFlow流行。

9) 部署

这两个框架都易于在小规模服务器端部署。TensorFlow在移动设备和嵌入式部署中表现良好。在TensorFlow中,将其部署到Android和IOS需要进行相当数量的工作。我们不必在C++或Java中重写模型推断部分的整个代码。PyTorch不能轻松进行热交换,而不会中断服务,但TensorFlow可以轻松做到这一点。

10) 序列化

使用这两个框架加载和保存模型都非常简单。PyTorch有一个简单的API,如果需要,可以将整个类pickle化,或者保存模型的所有权重。在序列化方面,TensorFlow的主要特性是可以将整个图保存为协议缓冲区,并包括参数和操作。之后,该图将加载到其他支持的语言中,如Java和C++。TensorFlow在Python不可选时对部署堆栈至关重要。当更改模型源代码时,TensorFlow可能很有用,但应能够运行旧模型。

11) 图构建和调试

PyTorch具有创建图的整个过程的动态性质。可以通过解释与图的特定方面相对应的代码行来构建图,因此它完全是在运行时构建的。

与此相反,TensorFlow的图构建是静态的,需要经过编译。之后,它将在我们之前提到的执行引擎上运行。

12) 可视化

在组织中展示任何项目时,可视化起着重要的作用。在可视化机器学习模型方面,TensorFlow具有TensorBoard,它在训练模型时有助于快速发现错误。它是模型图的实时表示,不仅显示图形表示,还实时显示准确性图形。这个功能在PyTorch中缺少。

13) 架构

如果将PyTorch和TensorFlow的架构进行比较,那么PyTorch的架构非常简单,而TensorFlow则不太容易使用,尽管提供了Keras作为一个使工作更容易的框架。与TensorFlow相比,PyTorch的可读性较低。

14) 数据集

PyTorch通常用于低性能模型和大型数据集,另一方面,TensorFlow用于高性能模型以及大型数据集。TensorFlow在执行大型数据集时发挥了至关重要的作用,需要快速执行。PyTorch更简单,但由于每个组织都有一个用于高性能执行的大型数据集,因此很少使用。当我们想要使用低性能执行大型数据集时,可以使用PyTorch。

15) 文档

PyTorch和TensorFlow都基于Python编程语言。Python的API文档都很好,因此找到最佳的API是很常见的。有一件事使得TensorFlow更好,即PyTorch的C库大多数情况下没有文档。然而,这只有在编写自定义C扩展以及可能对软件总体进行贡献时才会有影响。

16) 设备管理

在TensorFlow中,设备管理非常容易,因为我们不必指定任何内容,因为默认设置得很好。在TensorFlow中,如果GPU可用,则自动假定我们希望在GPU上运行。TensorFlow管理的缺点是,即使只使用一个GPU,它也会占用所有可用GPU的内存。

另一方面,在PyTorch中,即使启用了CUDA,我们仍必须明确地将所有内容移动到设备上。代码需要更频繁地检查CUDA并进行更明确的设备管理。

17) 自定义扩展

使用两个框架都可以绑定或构建用C、C++或CUDA编写的自定义扩展。当然,TensorFlow需要更多的样板代码,尽管这样更清晰地支持多种类型和设备。

在PyTorch中,我们可以简单地为特定的CPU和GPU版本编写接口和实现。

使用两个框架(PyTorch和TensorFlow)编译自定义扩展都是直截了当的,不需要在pip安装之外下载任何头文件或源代码。

结论

在这里,我们发现PyTorch和TensorFlow相似。PyTorch非常符合Python的风格,而且非常适合使用。它具有良好的启动时间和文档,而且速度比TensorFlow快得多。与TensorFlow相比,PyTorch的社区较小,并且缺少一些实用的工具,如TensorBoard,这使得TensorFlow在比较中更优越。

我们可以根据个人喜好(我们想要编写的代码)和需求使用两个框架。

我们得出结论,PyTorch最适合在家中使用,而TensorFlow最适合在办公室使用。

PyTorch和TensorFlow的比较

序号 比较因素 优势 劣势
1. 特性 TensorFlow PyTorch
2. 社区 TensorFlow PyTorch
3. API水平 TensorFlow PyTorch
4. 速度 PyTorch TensorFlow
5. 受欢迎程度 TensorFlow PyTorch
6. 启动时间 PyTorch TensorFlow
7. 覆盖范围 TensorFlow PyTorch
8. 部署 TensorFlow PyTorch
9. 序列化 TensorFlow PyTorch
10. 图构建和调试 PyTorch TensorFlow
11. 可视化 TensorFlow PyTorch
12. 架构 PyTorch TensorFlow
13. 数据集 TensorFlow PyTorch
14. 文档 PyTorch, TensorFlow
15. 设备管理 TensorFlow PyTorch
16. 自定义扩展 PyTorch TensorFlow

 
热门推荐
  • 东方甄选员工工资曝光
  • PyTorch 教程-PyTorch基础
  • Poe AI 机器人 Photo_CreateE:生成现实,库存照片,风格照片或动物照片

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐