dgl.khop_graph
- dgl.khop_graph(g, k, copy_ndata=True)[source]
返回一个图,其边连接原始图中的
k
跳邻居。更具体地说,当且仅当在原始图中存在一条从节点
u
到节点v
的长度为k
的路径时,新图中才存在一条从节点u
到节点v
的边。返回图的邻接矩阵是 \(A^k\) (其中 \(A\) 是 \(g\) 的邻接矩阵)。
- 参数:
- 返回:
返回的图。
- 返回类型:
注意
如果
copy_ndata
为 True,结果图将与输入图共享节点特征张量。因此,用户应尽量避免对任一图进行就地操作,因为这些操作将同时影响两个图。此函数会丢弃批处理信息。请在转换后的图上使用
dgl.DGLGraph.set_batch_num_nodes()
和dgl.DGLGraph.set_batch_num_edges()
来维护该信息。示例
下面是一个简单的示例
>>> import dgl >>> g = dgl.graph(([0, 1], [1, 2])) >>> g_2 = dgl.transforms.khop_graph(g, 2) >>> print(g_2.edges()) (tensor([0]), tensor([2]))
一个更复杂的示例
>>> import dgl >>> g = dgl.graph(([0,1,2,3,4,0,1,2,3,4], [0,1,2,3,4,1,2,3,4,0])) >>> dgl.khop_graph(g, 1) DGLGraph(num_nodes=5, num_edges=10, ndata_schemes={} edata_schemes={}) >>> dgl.khop_graph(g, 3) DGLGraph(num_nodes=5, num_edges=40, ndata_schemes={} edata_schemes={})