Используя трансляцию в нормальных тензорах, работает следующее:
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? Если нет, то какой алгоритм лучше всего подходит?