PyTorch和Torch有什么关系?

49

第一个仓库真的是官方的吗?那不只是 pytorch 的一个分支吗? - Eduardo Reis
3个回答

44

以下是PyTorch和Torch的简短比较。

Torch:

Torch是一个张量库,类似于numpy,但有很强的GPU支持。需要使用Lua作为Torch的包装器(是的!你需要对Lua有很好的理解),还需要使用LuaRocks软件包管理器。

PyTorch:

无需使用LuaRocks软件包管理器,也无需使用Lua编写代码。由于我们使用Python,因此可以最大程度地灵活开发深度学习模型。我们还可以利用主要的Python包,如scipynumpymatplotlibCython,以及PyTorch自己的autograd。

pytorch论坛上,有一份详细的讨论。另外,PyTorch和Torch都使用THNN。Torch提供了THNN库的Lua包装器,而PyTorch提供了相应的Python包装器。

PyTorch具有循环神经网络、权重共享和内存使用的灵活性,同时可以与C进行接口交互,并具有Torch的当前速度。

如需了解更多,请参阅此处的讨论。


13
PyTorch 的开发与 Torch 有关吗,还是仅仅是命名上的巧合? - Austin
26
问题的核心是:“这两者之间是否有任何关系?”,而这个答案并没有真正回答这个问题。 - cjauvin
5
这个回答有点令人困惑。hughperkins/pytorch和pytorch/pytorch中哪一个是“Torch”,哪一个是“PyTorch”? - Andz

15

为了澄清两个PyTorch仓库之间的混淆:

  • pytorch/pytorch非常类似于(Lua) Torch,但是使用Python编写。因此,它是对THNN的封装。这也是由Facebook撰写的。
  • hughperkins/pytorch:我在使用Torch之前就遇到过这个存储库,但我从未使用过,因此不确定它是否是一个在(Lua) Torch上用Python编写的包装器,然后再次是一个对THNN和Lua的封装器,或者是对THNN的封装器和Lua。 在这两种情况下,这都不是Torch的原始版本。当时没有Torch的Python替代品时,Hugh Perkins编写了它。

如果您想知道选择哪一个,我绝对建议选择pytorch/pytorch ,因为它直接与THNN通信,由制作THNN的人撰写,并持续维护。hughperkins/pytorch似乎已经不再得到维护。


1
另外,任何提到PyTorch的论文几乎肯定是指pytorch/pytorch,这也是GitHub上更受欢迎的。 - qwr

10

2023+ 答案

Torchtorch/torch7)是最初的实现,主要使用 C 编写,其中有一个 Lua 包装器。该项目于 2013 年由 EPFL 的 IDIAP 开始。后来,其他公司也加入了这个努力,包括 Facebook(现在是 Meta Platforms)。开发在 2019 年停止。

PyTorchpytorch/pytorch)确实是 Torch 的延续,将核心代码重写为 C++,并提供了同样重要的 Python 接口(一直是重点)。这个项目于 2016 年由 Facebook 的研究人员(现在是 Meta AI)发起,并在 2022 年末被 PyTorch 基金会(Linux 基金会的一部分)接管。


有些混淆的是,PyTorchPyPi 上的 Python 包只被称为 torch。幸运的是,如果你尝试 pip install pytorch(一个空的虚拟包),你将会得到一个明确的错误: 你尝试安装 "pytorch"。PyTorch 的包名是 "torch"
而在 conda 中,该包被称为 pytorch(位于频道/命名空间 pytorch 下)。
无论使用哪个包管理器,在 Python 代码中你需要 import torch
P.S.: 至于你提到的另一个项目hughperkins/pytorch,现在显然它并没有取得成功;它在2016年停止了开发。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接