PyTorch将运算符映射到函数

时间:2018-11-19 07:22:44

标签: pytorch

所有PyTorch运算符是什么,它们的功能等效项是什么?

例如,a @ b等同于a.mm(b)a.matmul(b)

我正在对操作符->函数映射的规范列表进行跟踪。

我很高兴获得PyTorch文档链接作为答案-我的googlefu找不到它。

2 个答案:

答案 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__

另请参见:
What is the '@=' symbol for in Python?

答案 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>