PyTorch отображает операторы на функции - PullRequest
0 голосов
/ 19 ноября 2018

Что такое все операторы PyTorch и каковы их функциональные эквиваленты?

Например, a @ b эквивалентно a.mm(b) или a.matmul(b)?

Я после канонического списка операторов -> отображений функций.

Я был бы рад получить в качестве ответа ссылку на документацию PyTorch - мой гуглфу не смог ее отследить.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Таблица документации Python Отображение операторов в функции обеспечивает каноническое отображение из:

оператор -> __function__()

Например:

Matrix Multiplication        a @ b        matmul(a, b)

В другом месте на странице вы увидите имя __matmul__ в качестве альтернативы matmul.

Определения PyTorch __functions__ можно найти в:

Вы можете посмотреть документацию для названных функций по адресу:

https://pytorch.org/docs/stable/torch.html?#torch.<FUNCTION-NAME>
0 голосов
/ 19 ноября 2018

Это определяет тензорные операции для 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__.

См. Также здесь для этого:
Для чего используется символ '@ =' в Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...