LegacyTUDataset

dgl.data.LegacyTUDataset(name, use_pandas=False, hidden_size=10, max_allow_node=None, raw_dir=None, force_reload=False, verbose=False, transform=None)[源码]

基类: DGLBuiltinDataset

LegacyTUDataset 包含了许多用于图分类的图核数据集。

参数:
  • name (str) – 数据集名称,例如 ENZYMES, DD, COLLAB, MUTAG,可以是 https://chrsmrrs.github.io/datasets/docs/datasets/ 上的数据集名称。

  • use_pandas (bool) – 当文件较大时,Numpy 的文件读取函数存在性能问题,使用 pandas 可以更快。默认值: False

  • hidden_size (int) – 某些数据集不包含特征。此时使用常量节点特征初始化,其隐藏尺寸为 hidden_size。默认值 : 10

  • max_allow_node (int) – 移除节点数多于 max_allow_node 的图。默认值 : None

  • transform (callable, optional) – 一个变换函数,接受一个 DGLGraph 对象并返回一个变换后的版本。每次访问 DGLGraph 对象时,都会先进行变换。

max_num_node

最大节点数

类型:

int

num_classes

类别数

类型:

int

num_labels

(已弃用,请改用 num_classes) 类别数

类型:

numpy.int64

说明

LegacyTUDataset 默认使用提供的节点特征。如果未提供特征,则改用独热编码的节点标签。如果两者均未提供,则使用常量作为节点特征。

数据集按标签对图进行排序。在手动划分训练/验证集之前,最好先打乱数据。

示例

>>> data = LegacyTUDataset('DD')

数据集实例是可迭代的

>>> len(data)
1178
>>> g, label = data[1024]
>>> g
Graph(num_nodes=88, num_edges=410,
      ndata_schemes={'feat': Scheme(shape=(89,), dtype=torch.float32), '_ID': Scheme(shape=(), dtype=torch.int64)}
      edata_schemes={'_ID': Scheme(shape=(), dtype=torch.int64)})
>>> label
tensor(1)

批量处理图和标签以进行 mini-batch 训练

>>> graphs, labels = zip(*[data[i] for i in range(16)])
>>> batched_graphs = dgl.batch(graphs)
>>> batched_labels = torch.tensor(labels)
>>> batched_graphs
Graph(num_nodes=9539, num_edges=47382,
      ndata_schemes={'feat': Scheme(shape=(89,), dtype=torch.float32), '_ID': Scheme(shape=(), dtype=torch.int64)}
      edata_schemes={'_ID': Scheme(shape=(), dtype=torch.int64)})
__getitem__(idx)[源码]

获取索引为 idx 的样本。

参数:

idx (int) – 样本索引。

返回:

返回一个图,其节点特征存储在 feat 字段中,节点标签(如果可用)存储在 node_label 字段中。同时返回图的标签。

返回类型:

(dgl.DGLGraph, Tensor)

__len__()[源码]

返回数据集中的图数量。