torch_geometric.data.InMemoryDataset
是 PyTorch Geometric 库中一个非常重要的用于处理图数据的抽象基类。
1. 基本概念与作用
-
用途概述:它主要用于将整个图数据集加载到内存中,方便后续快速地进行数据访问与操作,适用于数据集规模能够完全放入内存的情况,旨在简化图数据的加载、预处理以及供深度学习模型训练、评估等流程的使用。
-
继承关系:它继承自
torch.utils.data.Dataset
,这意味着它遵循了 PyTorch 中数据集处理的基本规范,可以利用 PyTorch 提供的一些数据加载相关的工具和机制,比如数据加载器(DataLoader
)等。
2. 关键方法
2.1 __init__(self, root=None, transform=None, pre_transform=None, pre_filter=None)
__init__(self, root=None, transform=None, pre_transform=None, pre_filter=None)
参数含义:
root
:字符串类型,指定数据集存储的根目录路径。该目录下通常会包含原始数据文件(raw_dir)以及经过预处理后的数据文件(如果有进行预处理的话processed_dir)。transform
:数据转换函数(可调用对象),用于对单个数据样本(比如单个图数据实例)进行变换操作,例如对节点特征进行归一化等,会在每次获取数据样本时调用。pre_transform
:同样是数据转换函数,但它是在数据保存到磁盘(如果有保存过程的话)或者在内存中进行初次处理之前应用到每个数据样本上,常用于较耗时的、只需执行一次的预处理任务,比如对图结构进行特定的重构等。pre_filter
:也是可调用对象,用于对数据样本进行筛选过滤,决定哪些样本应该被包含在最终的数据集中。
2.2 raw_file_names(self)
- 功能:该方法需要被子类重写,用于返回原始数据文件的文件名列表(字符串列表)。例如,如果数据集的原始数据是以多个
.txt
文件存储节点信息、边信息等,就需要在这里列出这些文件的名称,这样框架就能知晓要从原始数据目录(由root
参数指定的目录下的raw_dir
子目录)中查找哪些文件来加载原始数据。
2.3 processed_file_names(self)
- 功能:**同样需要被子类重写,它返回的是经过预处理后的数据文件的文件名列