这篇博客是我学习pytorch-geometric(正文将以PyG代替)时做的笔记,有错误的地方在所难免,欢迎指正,非常感谢。 1 图数据处理 1.1 创建自己的图数据 PyG创建图的方式很简单,假设我们有一张无向无权图,它包含3个结点和2条边,如下图所示: 在数据结构里面我们创建一张图,至少需要指定其结点、 边等信息。PyG也不例...
现在是时候创建我们的GNN架构了。对于任何熟悉Pytorch的人来说,这应该都是平常的事情。我们将使用SAGE图层。这些层是在一篇很好的论文[见参考文献3]中定义的,该论文非常细致地介绍了邻节点采样的思想。幸运的是,Pytorch Geometric 库已经为我们实现了这一层。因此,与每个PyTorch架构一样,我们必须定义一个包含我们...
Pytorch-Geometric 中的 MessagePassing 图中的卷积计算通常被称为邻域聚合或者消息传递 (neighborhood aggregation or message passing). 定义 为节点 在第 层的特征, 表示节点 到 节点 的边特征,在 GNN 中消息传递可以表示为 其中 表示具有置换不变性并且可微的函数,例如 sum, mean, max 等, 和 在PyTorch Gemet...
torch_geometric.data.HeteroData — pytorch_geometric documentation HeteroData 尝试模仿Python中的字典的行为。 初始化一个异质图对象的多种方式 初始化一个type为 paper 的节点,其节点特征矩阵为 x_paper,表示为 x from torch_geometric.data import HeteroData # (1) Assign attributes after initialization, da...
自定义数据集类是继承自 PyTorch Geometric 的InMemoryDataset类,这是用于处理可以全部加载到内存中的数据集的基类。 __init__函数接受root、transform和pre_transform作为参数,用于初始化数据集对象。在构造函数中,首先调用了基类InMemoryDataset的构造函数,并加载了已处理的数据文件(如果存在),将数据和切片信息存储在se...
PyG(PyTorch Geometric)是一个基于PyTorch的图神经网络框架,建议先了解PyTorch的使用再学习PyG,要不然看不懂,关于PyTorch的使用可以看 https://zhuanlan.zhihu.com/p/369496930 PyG包含图神经网络训练中的数据集处理、多GPU训练、多个经典的图神经网络模型、多个常用的图神经网络训练数据集而且支持自建数据集,主要包含以下...
PyTorch Geometric是PyTorch的一个扩展库,专门用于图神经网络的研究和应用。它提供了丰富的图神经网络模型、算法和工具,使得研究人员可以更加方便地进行图神经网络的开发和实验。三、经典模型实现 Graph ConvolutionGraph Convolution是一种基本的图神经网络模型,它将节点的特征通过邻接矩阵进行聚合,从而得到更新后的节点特征...
来源:https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.html 对数据集进行初始化后,就会自动下载原始文件、将其处理为已经描述好的Data格式。 2.1 以ENZYMES为例 TUDataset官方文档 一系列graph kernel的benchmark数据集 参数: use_node_attr:默认为False。如果置True,数据集会包含额外的连续边...
②cuda,pytorch,pytorch_geometric三者之间版本依赖精密,必须属于同一套版本。 其安装顺序即 cuda > pytorch > PyG ③其不能通过pycharm进行package安装,必须先安装在环境中,再由pycharm关联使用该环境。 ④推荐使用anoconda创立环境并下载如上两包。 2. 配置步骤 ...
dataloader取出的每个minibatch的数据类型是torch_geometric.data.Batch(继承自torch_geometric.data.Data)。Batch类型有一个属性是batch,它是一个列向量,表示这个minibatch中每个节点对应的图数据的编号: 假如这个minibatch有n个图,那么batch = [0,..0,1,...,1,2,...,2,...n-1,...,n-1],这个属性的作...