简体   繁体   English

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

[英]How to multiply a sparse matrix by a sparse matrix element-wise in pytorch

In pytorch, I can achieve two sparse matrixes multiplication by first turning them into a dense form在 pytorch 中,我可以通过首先将它们变成密集形式来实现两个稀疏矩阵相乘

adjdense = torch.sparse.FloatTensor(indextmp, valuetmp, torch.Size([num_nodes,num_nodes])).to_dense()
mask_dense = torch.sparse.FloatTensor(edge_index, edge_mask_list[k], torch.Size([num_nodes,num_nodes])).to_dense()
gdcdense = adjdense * mask_dense

but when the graph is large, this method requires a lot of memory.但是当图形很大时,这种方法需要大量的memory。 Thus, How to multiply a sparse matrix by a sparse matrix element-wise in pytorch?因此,如何在 pytorch 中将稀疏矩阵乘以稀疏矩阵元素? Thanks a lot.非常感谢。

Thanks for sim.谢谢你的模拟。 I have known how to do it.我知道该怎么做。

adjsparse = torch.sparse.FloatTensor(indextmp, valuetmp, torch.Size([num_nodes,num_nodes])) masksparse = torch.sparse.FloatTensor(edge_index, edge_mask_list[k],torch.Size([num_nodes,num_nodes])) adjsparse = torch.sparse.FloatTensor(indextmp, valuetmp, torch.Size([num_nodes,num_nodes])) maskparse = torch.sparse.FloatTensor(edge_index, edge_mask_list[k],torch.Size([num_nodes,num_nodes]))

result = adjsparse.mul(masksparse)结果 = adjsparse.mul(masksparse)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM