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
。默认值 : 10max_allow_node (int) – 移除节点数多于
max_allow_node
的图。默认值 : Nonetransform (callable, optional) – 一个变换函数,接受一个
DGLGraph
对象并返回一个变换后的版本。每次访问DGLGraph
对象时,都会先进行变换。
- 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)