PyTorch - 简介

PyTorch 被定义为 Python 的开源机器学习库。 它用于自然语言处理等应用程序。 它最初是由 Facebook 人工智能研究小组和 Uber 的概率编程 Pyro 软件开发的。

最初,PyTorch 是由 Hugh Perkins 开发的,作为基于 Torch 框架的 LusJIT 的 Python 包装器。 PyTorch 有两种变体。

PyTorch 在 Python 中重新设计和实现 Torch,同时为后端代码共享相同的核心 C 库。 PyTorch 开发人员调整了此后端代码以高效运行 Python。 他们还保留了基于 GPU 的硬件加速以及基于 Lua 的 Torch 的可扩展性功能。


特点

下面提到 PyTorch 的主要特性 −

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

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

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

PyTorch 以具有三个抽象级别而闻名,如下所示 −

  • 张量 − 在 GPU 上运行的命令式 n 维数组。

  • 变量 − 计算图中的节点。 这会存储数据和梯度。

  • 模块 − 将存储状态或可学习权重的神经网络层。


PyTorch 的优势

以下是 PyTorch 的优点 −

  • 代码易于调试和理解。

  • 它像 Torch 一样包括许多层。

  • 它包含很多损失函数。

  • 它可以被认为是对 GPU 的 NumPy 扩展。

  • 它允许构建结构依赖于计算本身的网络。


TensorFlow 与 PyTorch

我们将在下面研究 TensorFlow 和 PyTorch 之间的主要区别 −

PyTorch TensorFlow

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

TensorFlow 由 Google Brain 开发并在 Google 积极使用。

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

TensorFlow 并不新鲜,被许多研究人员和行业专业人士视为一种实用工具。

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

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

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

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

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

TensorFlow 更适合嵌入式框架。