在正常张量中使用广播,以下工作
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 功能可以做到这一点?如果不是,最好的替代算法是什么?