如何在pytorch中将密集矩阵与稀疏矩阵元素相乘

时间:2019-07-04 03:08:22

标签: pytorch sparse-matrix

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

1 个答案:

答案 0 :(得分:3)

您可以自己实现这种乘法

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())

请注意,由于乘法运算具有线性关系,因此您不必担心s是否合并。