以下是PyTorch和Torch的简短比较。
Torch:
Torch是一个张量库,类似于
numpy
,但有很强的GPU支持。需要使用Lua作为Torch的包装器(是的!你需要对Lua有很好的理解),还需要使用LuaRocks软件包管理器。
PyTorch:
无需使用LuaRocks软件包管理器,也无需使用Lua编写代码。由于我们使用Python,因此可以最大程度地灵活开发深度学习模型。我们还可以利用主要的Python包,如
scipy
、numpy
、matplotlib
和Cython
,以及PyTorch自己的autograd。
在pytorch论坛上,有一份详细的讨论。另外,PyTorch和Torch都使用THNN。Torch提供了THNN库的Lua包装器,而PyTorch提供了相应的Python包装器。
PyTorch具有循环神经网络、权重共享和内存使用的灵活性,同时可以与C进行接口交互,并具有Torch的当前速度。
如需了解更多,请参阅此处的讨论。
为了澄清两个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
似乎已经不再得到维护。
pytorch/pytorch
,这也是GitHub上更受欢迎的。 - qwr2023+ 答案
Torch(torch/torch7
)是最初的实现,主要使用 C 编写,其中有一个 Lua 包装器。该项目于 2013 年由 EPFL 的 IDIAP 开始。后来,其他公司也加入了这个努力,包括 Facebook(现在是 Meta Platforms)。开发在 2019 年停止。
PyTorch(pytorch/pytorch
)确实是 Torch 的延续,将核心代码重写为 C++,并提供了同样重要的 Python 接口(一直是重点)。这个项目于 2016 年由 Facebook 的研究人员(现在是 Meta AI)发起,并在 2022 年末被 PyTorch 基金会(Linux 基金会的一部分)接管。
PyPi
上的 Python 包只被称为 torch
。幸运的是,如果你尝试 pip install pytorch
(一个空的虚拟包),你将会得到一个明确的错误: 你尝试安装 "pytorch"。PyTorch 的包名是 "torch"
。conda
中,该包被称为 pytorch
(位于频道/命名空间 pytorch
下)。import torch
。
hughperkins/pytorch
,现在显然它并没有取得成功;它在2016年停止了开发。
pytorch
的一个分支吗? - Eduardo Reis