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 定义了所有边的...
data.edge_index:采用COO格式(Coordinate Format)的存储,维度是2*边数,也就是第一行表示源节点,第二行表示目标节点,数据格式是torch.long。 data.edge_attr:边的特征矩阵,维度是边的数目*边特征数,也就每行表示边特征。data.y:训练的目标标签,可能是任意维度 * data.pos:节点对应的位置矩阵,维度节点数*维度...
我们需要注意 edge_index 中表示节点的索引从0开始,范围是 {0,...,num_nodes-1}。这样可以简化表示最终的数据。PyG 中内置了大量通用基础数据集,如 Planetoid datasets、图分类数据集、QM7和QM9数据集、少量的3D网格/点云数据集等。初始化一个数据集十分简单,PyG 会自动处理成 Data 格式。对于...
data=Data(x=x,edge_index=edge_index)# 查看图数据print(data)# 图数据中包含什么信息print(data.keys)# 查看节点的属性信息print(data['x'])# 节点数print(data.num_nodes)# 边数print(data.num_edges)# 节点属性向量的维度print(data.num_node_features)# 图中是否有孤立节点print(data.has_isolated_n...
data.y: 计算损失所需的目标数据,比如节点级别的形状为[num_nodes, *],或者图级别的形状为[1, *]; 现在,我们来简单创建一张图: 代码语言:javascript 复制 importtorch from torch_geometric.dataimportData edge_index=torch.tensor([[0,1,1,2],[1,0,2,1]],dtype=torch.long)x=torch.tensor([[-1]...
x, edge_index = data.x, data.edge_index 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...
x, edge_index = data.x, data.edge_index 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) ...
PyG 中的单个图由torch_geometric.data.Data的实例描述,默认情况下它包含以下属性: data.x: 以[num_nodes, num_node_features]形式描述的节点特征矩阵 data.edge_index: COO 格式的图形连接,形状为 [2, num_edges],类型为 torch.long。 COO 格式:PyTorch 实现了所谓的坐标格式或 COO 格式,作为实现稀疏张量的...
Data(edge_index=[2, 156], x=[34, 34], y=[34], train_mask=[34]) 1. 我们可以看到,这个数据对象拥有4个属性: (1)edge_index属性拥有关于图连接性的信息,即每条边的源节点和目的节点索引的一个元组; (2)节点特征称为 x(34个节点中的每一个都被分配了一个34维的特征向量); ...
构建一张图的Data对象时,通常需要提供以下基本数据: from torch_geometric.data import Data Data(x: Optional[torch.Tensor] = None, edge_index: Optional[torch.Tensor] = None, edge_attr: Optional[torch.Tensor] = None, y: Optional[torch.Tensor] = None, ...