import torch # 假设你的边索引是这样的 edge_index = torch.tensor([[0, 1, 2], [1, 0, 3]]) # 计算邻接矩阵 adj_matrix = torch.sparse.FloatTensor(edge_index, torch.ones(edge_index.size(1)), torch.Size([num_nodes, num_nodes])).to(device) # 将邻接矩阵转换为密集格式 adj_matrix =...
得到与相邻节点特征均值对应的节点表示。这是因为(转换后的)邻接矩阵中的权值对应于相邻节点特征加权和中的权值。我再次鼓励你亲自验证这一观察结果。 合在一起 现在我们结合了自循环和归一化技巧。此外,我们还将重新介绍先前为简化讨论而放弃的权值和激活函数。 把权值加回来 首先要做的是使用权重。注意这里D_hat是...
通过DHT转换之后,我们可以得到原始的graph 转换后的hyper edge index对应的node id和 edge id列表,然后使用node id 去 edge features table中索引得到 edge features,通过edge id 去 node features table中索引得到node features。 愉快的调包 我们将原始的graph转化为其对偶的hypergraph之后,下游使用的gnn 模型基本不...
直接for循环,吧edge index里面的位置填充1: import torch def edge_index_to_adjacency_matrix(edge_index, num_nodes): # 创建大小为 (num_nodes, num_nodes) 的二维张量 adjacency_matrix = torch.zeros(num_nodes, num_nodes) # 根据边索引填充邻接矩阵的元素 for i, j in zip(*edge_index): adjacency...