pytorch中的稀疏矩阵 2021-09-07

这篇博客介绍了PyTorch中稀疏矩阵的使用,特别是torch_sparse.tensor.SparseTensor和torch.sparse_coo_tensor。讨论了如何进行矩阵加法、提取度数以及稀疏矩阵与稠密矩阵的乘法。还展示了如何计算对称拉普拉斯矩阵,并给出了详细的步骤,包括度数的计算、逆平方根的处理以及最终的矩阵更新。
摘要由CSDN通过智能技术生成

pytorch的系数矩阵结构包括:

  • torch_sparse.tensor.SparseTensor: 该结构非pytorch官方给出的数据结构,在torch_geometric等包中使用。可以通过.to_torch_sparse_coo_tensor()转换为下面的COO tensor(coordinate)结构。
  • torch.sparse包中存在的几种数据结构,详情见 https://pytorch.org/docs/stable/sparse.html 。包括torch.sparse_coo_tensor等。

torch.sparse中COO tensor相关运算:

  • 提取indices、修改values:先进行.coalesce(),再调用.indices().values(),获取结果后修改。将计算结果直接通过torch.sparse_coo_tensor(得到的.indices(), new_values)创建一个新的COO tensor。
  • 加法:构造一个新的coo tensor,直接用+即可。
  • 获取度数:用torch.sparse.sum(你的sparse_tensor, dim=0).values()
  • 矩阵乘法:目前(2021.09.07)只能算稀疏矩阵和稠密矩阵的乘法,不能算稀疏矩阵之间的乘法!需要特别注意!调用的函数是.matmul(稠密矩阵)
  • 计算对称形式拉普拉斯:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值