pytorch sparse (sparse_coo_tensor) передает плотную форму при умножении - PullRequest
2 голосов
/ 06 марта 2020

Используя трансляцию в нормальных тензорах, работает следующее:

torch.ones(3, 1)*torch.ones(3, 10)

Мне нужно распространить это поведение на разреженные векторы, но я не могу:

i = torch.tensor([[0, 1, 1],
                  [2, 0, 2]])
a = torch.sparse_coo_tensor(i, torch.ones(3, 1), [2, 4, 1])
b = torch.sparse_coo_tensor(i, torch.ones(3, 10), [2, 4, 10])
a*b
# gives RuntimeError: mul operands have incompatible sizes

Почему не следует эта работа? Есть ли для этого функция pytorch? Если нет, то какой алгоритм лучше всего подходит?

...