FB15kDataset¶
- class dgl.data.FB15kDataset(reverse=True, raw_dir=None, force_reload=False, verbose=True, transform=None)[source]¶
基类:
KnowledgeGraphDataset
FB15k 链接预测数据集。
FB15K 数据集在 Translating Embeddings for Modeling Multi-relational Data 这篇论文中被引入。它是 Freebase 的一个子集,包含约 14,951 个实体和 1,345 种不同的关系。默认情况下,创建数据集时,会为每条边创建一个具有反向关系类型的反向边。
FB15k 数据集统计
节点数: 14,951
关系类型数: 1,345
反向关系类型数: 1,345
标签划分
训练集: 483142
验证集: 50000
测试集: 59071
- 参数:
示例
>>> dataset = FB15kDataset() >>> g = dataset.graph >>> e_type = g.edata['e_type'] >>> >>> # get data split >>> train_mask = g.edata['train_mask'] >>> val_mask = g.edata['val_mask'] >>> >>> train_set = th.arange(g.num_edges())[train_mask] >>> val_set = th.arange(g.num_edges())[val_mask] >>> >>> # build train_g >>> train_edges = train_set >>> train_g = g.edge_subgraph(train_edges, relabel_nodes=False) >>> train_g.edata['e_type'] = e_type[train_edges]; >>> >>> # build val_g >>> val_edges = th.cat([train_edges, val_edges]) >>> val_g = g.edge_subgraph(val_edges, relabel_nodes=False) >>> val_g.edata['e_type'] = e_type[val_edges]; >>> >>> # Train, Validation and Test >>>
- __getitem__(idx)[source]¶
获取图对象
- 参数:
idx (int) – 项目索引,FB15kDataset 只有一个图对象。
- 返回值:
图包含:
edata['e_type']
: 边关系类型edata['train_edge_mask']
: 训练集正例边掩码edata['val_edge_mask']
: 验证集正例边掩码edata['test_edge_mask']
: 测试集正例边掩码edata['train_mask']
: 训练边集合掩码(包含反向训练边)edata['val_mask']
: 验证边集合掩码(包含反向验证边)edata['test_mask']
: 测试边集合掩码(包含反向测试边)ndata['ntype']
: 节点类型。在此数据集中全部为 0。
- 返回类型: