PyTorch 简介

PyTorch 是一个开源的 Python 机器学习库,主要用于深度学习领域。它由 Facebook 的人工智能研究团队(FAIR)开发和维护,并且在学术界和工业界都得到了广泛的应用。PyTorch 是一个强大且灵活的深度学习框架,以其动态图、Pythonic 的 API 和强大的 GPU 支持而闻名。,并且拥有一个活跃的社区。如对深度学习感兴趣,PyTorch 是一个非常值得学习和使用的框架。本文主要介绍PyTorch 简介。

PyTorch 最初是由 Hugh Perkins 开发的,它起源于 Torch 框架,作为基于 LuaJIT 的 Torch 的 Python 包装器。后来,Facebook AI 研究团队将其重新设计并用 Python 实现,同时复用了 Torch 的底层 C/CUDA 后端。
这种设计既保留了原有 Torch 的高性能 GPU 加速特性,又使其更适合 Python 生态,最终演变为今天广泛使用的 PyTorch 框架。

1、功能特性

Easy Interface :PyTorch 提供易于使用的 API;因此它被认为在 Python 上操作和运行非常简单。这个框架中的代码执行非常简单。

使用Python :这个库是Python的,可以与Python数据科学堆栈顺利集成。因此,它可以利用Python环境提供的所有服务和功能。

计算图(Computational graphs):PyTorch提供了一个提供动态计算图的优秀平台。因此,用户可以在运行时更改它们。当开发人员不知道创建一个神经网络模型需要多少内存时,这非常有用。

特性说明
动态图(Dynamic Computation Graph)运行时构建计算图,调试更方便、灵活性强。
张量操作(Tensor)类似 NumPy,支持 GPU 加速。
自动求导(Autograd)自动计算梯度,用于训练神经网络。
模块化神经网络构建(nn.Module)构建、管理、训练模型非常方便。
支持 GPU(CUDA)轻松将张量/模型迁移到 GPU 训练。

PyTorch有以下三个层次的抽象:

1)Tensor(张量)

在GPU上运行的命令式n维数组。

2)Variable(变量)

计算图中的节点。这存储了数据和梯度。

3)Module(模块)

神经网络层将存储状态或可学习的权值。

2、PyTorch的优点

下面是PyTorch的优点:

1)很容易调试和理解代码。

2)它包括许多层,如Torch。

3)它包括很多 loss函数。

4)它可以被认为是NumPy对gpu的扩展。

5)它可以建立网络,其结构依赖于计算本身。

3、TensorFlow 与 PyTorch 区别

TensorFlow和PyTorch之间的主要区别如下:

PyTorch

TensorFlow

PyTorch与Facebook中

积极使用的基于lua的Torch框架密切相关。

TensorFlow 由 Google Brain 开发,

并在 Google 积极使用。

与其他竞争技术相比,PyTorch 相对较新。

TensorFlow并不是一个新的工具,

很多研究人员和行业专业人士都认为,

它是一个可以随身携带的工具。

PyTorch 以命令式和动态方式包含所有内容。

TensorFlow 包含静态和动态图的组合。

PyTorch 中的计算图是在运行时定义的。

TensorFlow 不包含任何运行时选项。

PyTorch 包括针对移动和嵌入式框架的部署。

TensorFlow 更适用于嵌入式框架。

推荐阅读
cjavapy编程之路首页