data.edge_index:采用COO格式(Coordinate Format)的存储,维度是2*边数,也就是第一行表示源节点,第二行表示目标节点,数据格式是torch.long。 data.edge_attr:边的特征矩阵,维度是边的数目*边特征数,也就每行表示边特征。data.y:训练的目标标签,可能是任意维度 * data.pos:节点对应的位置矩阵,维度节点数*维度...
importtorchfromtorch_geometric.dataimportDataedge_index=torch.tensor([[0,1,1,2],[1,0,2,1]],dtype=torch.long)x=torch.tensor([[-1],[0],[1]],dtype=torch.float)data=Data(x=x,edge_index=edge_index)>>>Data(edge_index=[2,4],x=[3,1]) 需要注意的是,张量edge_index 定义了所有边的...
edge_index=train_data.edge_index, num_nodes=train_data.num_nodes, num_neg_samples=train_data.edge_label_index.size(1), method='sparse') edge_label_index = torch.cat( [train_data.edge_label_index, neg_edge_index], dim=-1, ) edge_label = torch.cat([ train_data.edge_label, train_...
edge_index=train_data.edge_index, num_nodes=train_data.num_nodes, num_neg_samples=train_data.edge_label_index.size(1), method='sparse') edge_label_index = torch.cat( [train_data.edge_label_index, neg_edge_index], dim=-1...
x = self.conv1(x, edge_index) x = F.relu(x) output = self.conv2(x, edge_index) return output gcn = GCN().to(device) optimizer_gcn = torch.optim.Adam(gcn.parameters(), lr=0.01, weight_decay=5e-4) criterion = nn.CrossEntropyLoss() ...
PyG通过GCNConv实现这一层,可以通过传入节点特征表示x和COO图连接表示edge_index来执行。 有了这些,我们就可以通过在torch.nn.Module类中定义我们的网络架构来创建我们的第一个图形神经网络。 import torch from torch.nn import Linear from torch_geometric.nn import GCNConv ...
data.edge_index:COO格式的图节点连接信息,类型为torch.long,维度为[2,num_edges](具体包含两个列表,每个列表对应位置上的数字表示相应节点之间存在边连接) data.edge_attr:图中边的属性信息,维度[num_edges,num_edge_features] data.y:标签信息,根据具体任务,维度是不一样的,如果是在节点上的分类任务,维度为...
我们需要注意 edge_index 中表示节点的索引从0开始,范围是 {0,...,num_nodes-1}。这样可以简化表示最终的数据。PyG 中内置了大量通用基础数据集,如 Planetoid datasets、图分类数据集、QM7和QM9数据集、少量的3D网格/点云数据集等。初始化一个数据集十分简单,PyG 会自动处理成 Data 格式。对于...
edge_index:边矩阵:shape为[2, num_edges] 一张图的所有边存储于该二维矩阵中,其中第一行表示所有边的起始节点编号,第二行表示所有边的目标节点编号,类型为 torch.long。 (注意:edge _ index 中的元素必须在{0,1,2,... ,num _ node-1})
print(g.edge_index) 最终输出 tensor([ [1.],[1.],[1.],[1.],[2.],[2.],[2.], [2.],[3.], [3.],[3.],[3.]])tensor([1,2,3,4,1,2,3,4,1,2,3,4])tensor([[ 10.],[ 20.],[ 30.],[ 50.],[ 60.],[ 70.],[ 80.],[ 90.],[100.]])tensor([[ 1,2,3...