图可以用来表达个体(节点)间的成对的关系。在PyG中,一个图可以用torch_geometric.data.Data类的实例来表示,其主要属性如下:
- data.x:节点的属性矩阵,矩阵大小为[节点数量,每个节点的属性数]
- data.edge_index:使用COO格式存储的连边信息矩阵,矩阵大小为[2,连边数量],矩阵元素的类型为torch.long。
- data.edge_attr:连边属性矩阵,矩阵大小为[连边数量,连边的属性数]
- data.y:机器学习的目标(其规模可以是任意的),如:当训练目标为节点层面时,其规模可以是[节点数量, ∗ * ∗];当训练目标为图层面时,其规模可以是[1, ∗ * ∗]。
- data.pos:节点坐标矩阵,矩阵规模为[节点数量,坐标维度]
此外,Data对象并不只有这些属性。例如我们可以用data.face来存储三个节点的关系,其矩阵规模为[3,面的数量],矩阵元素类型为torch.long。
下面的示例可以生成一个由三个节点、四条连边组成的无权无向图。每个节点包含1个属性。
import torch
from torch_geometric.data import Data
edge_index = torch.tensor([0, 1, 1, 2].
[1, 0, 2, 1]