一、 环境配置
cuda11.3
torch 1.12.1+cu113
torch-cluster 1.6.0+pt112cu113
torch-geometric 2.4.0
torch-scatter 2.0.9
torch-sparse 0.6.15+pt112cu113
torch-spline-conv 1.2.1+pt112cu113
tqdm 4.62.3
ogb 1.3.6
二、loader类型
2.1 GraphSAINTRandomWalkSampler
GraphSAINTRandomWalkSampler
是一种用于图数据的采样器,用于生成随机游走序列。它是基于GraphSAINT算法的一部分,用于有效地训练大规模图神经网络。
GraphSAINTRandomWalkSampler的工作原理如下:
- 首先,它从图中的每个节点开始,进行多次随机游走。随机游走是指从当前节点出发,按照一定的策略选择下一个节点,直到达到预定的步数或达到终止条件。
- 在每次随机游走中,采样器会根据指定的邻居采样策略,选择当前节点的邻居节点作为下一个节点。这样可以有效地探索图中的不同路径和邻居节点。
- 采样器会记录每次随机游走的路径,形成一个随机游走序列。这些序列可以用于训练图神经网络,以捕捉节点之间的关系和图的结构。
GraphSAINTRandomWalkSampler的优点包括:
- 高效的采样策略:采样器使用了一种基于邻居节点的采样策略,可以有效地探索图中的不同路径和邻居节点。
- 可扩展性:采样器可以处理大规模图数据,并且可以在分布式环境中进行并行化处理。
- 适用于图神经网络训练:采样器生成的随机游走序列可以用于训练图神经网络,以学习节点之间的关系和图的结构。
总之,GraphSAINTRandomWalkSampler是一种用于图数据的高效采样器,可以生成随机游走序列,用于训练图神经网络。它在大规模图数据和分布式环境中具有良好的可扩展性和适用性。
2.2 NeighborSampler
NeighborSampler
是一种用于图数据的邻居采样器,用于生成邻居子图。它是基于图神经网络中的采样方法,用于有效地训练大规模图数据。
NeighborSampler的工作原理如下:
- 首先,它从图中的每个节点开始,选择一定数量的邻居节点作为邻居子图的中心节点。
- 对于每个中心节点,采样器会根据指定的邻居采样策略,选择其邻居节点作为邻居子图的节点。
- 采样器会根据邻居节点之间的边关系,构建邻居子图的边。
- 采样器会记录邻居子图的节点和边信息,形成一个邻居子图。
- 邻居子图可以用于训练图神经网络,以学习节点之间的关系和图的结构。
NeighborSampler的优点包括:
- 灵活的采样策略:采样器可以根据需求选择不同的邻居采样策略,如随机采样、按度数采样等,以满足不同的训练需求。
- 可扩展性:采样器可以处理大规模图数据,并且可以在分布式环境中进行并行化处理。
- 适用于图神经网络训练:采样器生成的邻居子图可以用于训练图神经网络,以学习节点之间的关系和图的结构。
总之,NeighborSampler是一种用于图数据的灵活邻居采样器,可以生成邻居子图,用于训练图神经网络。它在大规模图数据和分布式环境中具有良好的可扩展性和适用
三、获取数据集
3.1 网络获取
dataset = PygNodePropPredDataset(name='ogbn-arxiv', transform=T.ToUndirected())
是这句代码下载了名为'ogbn-arxiv'的数据集。根据代码中使用的PyTorch Geometric库的命名约定,`PygNodePropPredDataset`是用于节点属性预测任务的数据集类。通过指定`name='ogbn-arxiv'`,它将下载并加载名为'ogbn-arxiv'的数据集。
该数据集的名称`ogbn-arxiv`指的是Open Graph Benchmark (OGB) 中的论文引用网络数据集。这个数据集用于进行节点属性预测任务,即根据节点的特征和邻接关系预测节点的属性或类别。
所以,这句代码确实是用于下载数据集,并将其存储在`dataset`变量中供后续使用。
3.2 已经下载到本地的数据集
经过下载后本地会有一个dataset文件夹
如果你已经将数据集下载到本地并希望从本地加载数据集,可以使用PygNodePropPredDataset
的root
参数来指定数据集的本地路径。以下是修改后的代码示例:
dataset = PygNodePropPredDataset(root='/path/to/dataset', name='ogbn-arxiv', transform=T.ToUndirected())
在这里,需要将/path/to/dataset
替换为实际数据集所在的本地路径。通过指定root
参数,PyTorch Geometric将从指定的本地路径加载数据集而不是从互联网下载。确保将/path/to/dataset
替换为实际的本地路径,以便正确加载数据集。
以下训练ogb数据集节点分类任务
该实验结果是一个注意力头的GAT模型在该数据集上的结果,准确率:76.76
GATv2,一个注意力头,ogbn-arxiv数据集,准确率:77.38