我可以使用torch.sparse.mm()
或torch.spmm()
直接在稀疏矩阵和稠密矩阵之间进行乘法,但是我应该选择哪个函数进行逐元素乘法?
答案 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
是否合并。