尽管PyTorch Geometric已包含许多有用的数据集,但我们有时候还是需要使用自记录或非公开可用数据创建自己的数据集。
自己构建数据集其实是很简单的,你可以通过源码来查看如何构建数据集。也可以通过我们的简单介绍来初步学习自己构建数据集。
我们为数据集提供了两个抽象类:torch_geometric.data.Dataset和torch_geometric.data.InMemoryDataset。 后者继承自前者,若整个数据集都能放进内存,则应该使用后者。
按照tochvision约定,每个数据集都会设置一个根文件夹。在此文件夹下,又设有raw_dir用来存放下载的原始数据,processede_dir用来保存处理过的数据集。
此外,也可以为每个数据设置transform,pre_transform,pre_filter函数,默认是None.
- transform:在访问之前动态转换数据对象,一般用来做数据增强。
- pre_transform:用于讲数据对象保存到磁盘之前的转换,建议用它来做繁重的数据预处理(只需执行一次)
- pre_filter:可以在保存数据之前手动过滤掉特定的数据对象。
创建内存数据集
为了创建torch_geometric.data.InMemoryDataset,需要实现四种基本方法:
- torch_geometric.data.InMemoryDataset.raw_file_names():储存源文件的列表。如果这些文件都在raw_dir中找到了,就会跳过下载。
- torch_geometric.data.InMemoryDataset.processed_file_names():储存处理后的文件列表,若全部找到就跳过预处理。<