如何在pytorch中按元素将稠密矩阵乘以稀疏矩阵

Liu*_*Liu 5 sparse-matrix pytorch

我可以使用torch.sparse.mm()torch.spmm()直接在稀疏矩阵和密集矩阵之间进行乘法,但是我应该选择哪个函数进行元素乘法?

Sha*_*hai 5

你可以自己实现这个乘法

def sparse_dense_mul(s, d):
  i = s._indices()
  v = s._values()
  dv = d[i[0,:], i[1,:]]  # get values from relevant entries of dense matrix
  return torch.sparse.FloatTensor(i, v * dv, s.size())
Run Code Online (Sandbox Code Playgroud)

请注意,由于乘法运算的线性,您无需担心是否s合并。