我是靠谱客的博主 美丽期待,最近开发中收集的这篇文章主要介绍稀疏矩阵 以及 torch_sparse 整理Coo 矩阵Csr 也可以 采用 coo 类似的初始化方式 给出row col,注意 以下两个区别matrix. todense() 可以转化为dense矩阵,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1. sparse matrix
Coo 矩阵
- coo + csr + csc 稀疏矩阵详细分析, 很详细
- 常用初始化 方式 coo_matrix((data, (i, j)), [shape=(M, N)])):三元组初始化
- coo_matrix(D):D代表密集矩阵;
- coo_matrix(S):S代表其他类型稀疏矩阵
- coo_matrix((M, N), [dtype]):构建一个shape为M*N的空矩阵,默认数据类型是d
Csr 也可以 采用 coo 类似的初始化方式 给出row col,注意 以下两个区别
- csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)]))
三者关系:a[row_ind[k], col_ind[k]] = data[k] - csr_matrix((data, indices, indptr), [shape=(M, N)])
matrix. todense() 可以转化为dense矩阵
-创建常用 coo比较直观,计算时常转化为 csr 高效
- 稀疏矩阵GNN实例
2. torch_sparse.scatter
scatter实例分析
- 根据index来进行 元素之间的组合。index 参数,它的值 表示 当前 index的元素 最后的 位置。 常用于 message aggregate 中。 考虑我们在进行message passing,之前通常的 做法是采用 X和 A进行矩阵相乘,稀疏矩阵很多元素=0,这样做法低效。
- 不想通过矩阵相乘,也想得到稀疏矩阵的乘法后的效果,即完成message passing。可以通过 torch_sparse.scatter来实现。邻接矩阵 存储时候 coo 格式 可以提供 edge[0]和 edge[1] 两组表明 出和入的节点值。针对 edge[1]的array,可以根据 其 edge[0] 来判断 和哪个节点相连接,将 edge[0] 作为 scatter中 index 的值,即就将 该矩阵 相应的元素的 message 全都 aggregate到 edge[0]的节点处,实现了消息传递。
- 1 .理解这个index参数的值的含义— 表明了元素aggregate到哪里去。
- 2 .point 1中是哪个元素去聚集? index自身的下标(index的index就是元素自身的index)
- src: 所要操作的对象,gnn中可以传入特征矩阵
- 参数 dim =0,按照行 看作矩阵(常采用,一行一个node), dim=1,按照列看作节点
最后
以上就是美丽期待为你收集整理的稀疏矩阵 以及 torch_sparse 整理Coo 矩阵Csr 也可以 采用 coo 类似的初始化方式 给出row col,注意 以下两个区别matrix. todense() 可以转化为dense矩阵的全部内容,希望文章能够帮你解决稀疏矩阵 以及 torch_sparse 整理Coo 矩阵Csr 也可以 采用 coo 类似的初始化方式 给出row col,注意 以下两个区别matrix. todense() 可以转化为dense矩阵所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复