Я запутался между умножением между двумя тензорами, используя * и matmul.Ниже мой код
import torch
torch.manual_seed(7)
features = torch.randn((2, 5))
weights = torch.randn_like(features)
здесь, я хочу умножить вес и характеристики.Итак, один из способов сделать это выглядит следующим образом:
print(torch.sum(features * weights))
Вывод:
tensor(-2.6123)
Другой способ сделать это - использовать matmul
print(torch.mm(features,weights.view((5,2))))
, но здесь вывести
tensor([[ 2.8089, 4.6439],
[-2.3988, -1.9238]])
Что я не понимаю здесь, так это то, почему matmul
и обычное умножение дают разные результаты, когда оба одинаковы.Я что-то здесь не так делаю?
Редактировать: Когда я использую функцию (1,5)
, оба выхода * и matmul
одинаковы.но это не то же самое, когда форма (2,5)
.