Unverified Commit 9211d34f authored by rudongyu's avatar rudongyu Committed by GitHub
Browse files

[BugFix] Fix khop_adj (#5754)

parent b0308c85
......@@ -1152,21 +1152,22 @@ def khop_adj(g, k):
>>> 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_adj(g, 1)
tensor([[1., 0., 0., 0., 1.],
[1., 1., 0., 0., 0.],
tensor([[1., 1., 0., 0., 0.],
[0., 1., 1., 0., 0.],
[0., 0., 1., 1., 0.],
[0., 0., 0., 1., 1.]])
[0., 0., 0., 1., 1.],
[1., 0., 0., 0., 1.]])
>>> dgl.khop_adj(g, 3)
tensor([[1., 0., 1., 3., 3.],
tensor([[1., 3., 3., 1., 0.],
[0., 1., 3., 3., 1.],
[1., 0., 1., 3., 3.],
[3., 1., 0., 1., 3.],
[3., 3., 1., 0., 1.],
[1., 3., 3., 1., 0.],
[0., 1., 3., 3., 1.]])
[3., 3., 1., 0., 1.]])
"""
assert g.is_homogeneous, "only homogeneous graph is supported"
adj_k = (
g.adj_external(transpose=True, scipy_fmt=g.formats()["created"][0]) ** k
g.adj_external(transpose=False, scipy_fmt=g.formats()["created"][0])
** k
)
return F.tensor(adj_k.todense().astype(np.float32))
......
......@@ -649,7 +649,7 @@ def test_khop_graph():
def test_khop_adj():
N = 20
feat = F.randn((N, 5))
g = dgl.DGLGraph(nx.erdos_renyi_graph(N, 0.3))
g = dgl.DGLGraph(nx.erdos_renyi_graph(N, 0.3, directed=True))
for k in range(3):
adj = F.tensor(F.swapaxes(dgl.khop_adj(g, k), 0, 1))
# use original graph to do message passing for k times.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment