所有PyTorch运算符是什么,它们的功能等效项是什么?
例如,a @ b
等同于a.mm(b)
或a.matmul(b)
?
我正在对操作符->函数映射的规范列表进行跟踪。
我很高兴获得PyTorch文档链接作为答案-我的googlefu找不到它。
答案 0 :(得分:2)
这为0.3.1定义了张量运算(它也包含其他运算符的定义): https://pytorch.org/docs/0.3.1/_modules/torch/tensor.html
用于当前稳定器的代码已重新排列(我想他们现在在C中做更多的工作),但是由于矩阵乘法的行为没有改变,因此可以认为这仍然有效。
请参阅__matmul__
的定义:
def __matmul__(self, other):
if not torch.is_tensor(other):
return NotImplemented
return self.matmul(other)
和
def matmul(self, other):
r"""Matrix product of two tensors.
See :func:`torch.matmul`."""
return torch.matmul(self, other)
运算符@
是PEP 465引入的,并映射到__matmul__
。
答案 1 :(得分:2)
Python文档表Mapping Operators to Functions提供了来自以下方面的规范映射:
操作员-> __function__()
例如:
Matrix Multiplication a @ b matmul(a, b)
在页面的其他位置,您将看到__matmul__
名称作为matmul
的替代名称。
PyTorch __functions__
的定义可在以下位置找到:
您可以在以下位置查找命名函数的文档:
https://pytorch.org/docs/stable/torch.html?#torch.<FUNCTION-NAME>