dgl.metapath_reachable_graph
- dgl.metapath_reachable_graph(g, metapath)[source]
返回一个图,其中任何节点
u
的后继节点是可以通过给定元路径从u
到达的节点。如果起始节点类型
s
和结束节点类型t
相同,则返回一个节点类型为s = t
的同构图。否则,返回一个源节点类型为s
、目标节点类型为t
的单向二部图。在这两种情况下,如果存在一条从节点
u
到节点v
且与元路径匹配的路径,则节点u
和v
将通过边(u, v)
连接。结果图保留了原始图中类型为
s
和t
的节点集合,即使它们可能没有邻居。原始图中源/目标节点类型的特征将被复制到新图。
- 参数:
- 返回:
一个同构图或单向二部图。无论输入图在 CPU 还是 GPU 上,结果图都将在 CPU 上。
- 返回类型:
注意
此函数会丢弃批次信息。请在变换后的图上使用
dgl.DGLGraph.set_batch_num_nodes()
和dgl.DGLGraph.set_batch_num_edges()
来保留这些信息。示例
>>> g = dgl.heterograph({ ... ('A', 'AB', 'B'): ([0, 1, 2], [1, 2, 3]), ... ('B', 'BA', 'A'): ([1, 2, 3], [0, 1, 2])}) >>> new_g = dgl.metapath_reachable_graph(g, ['AB', 'BA']) >>> new_g.edges(order='eid') (tensor([0, 1, 2]), tensor([0, 1, 2]))