Hi,
I want to sample a neighbourhood like NeighborSampler, but for a specific node N and a specific set of neighbours (node_ids). (So not randomly sampled).
frontier = dgl.node_subgraph(g, [N] + node_ids)
eid = frontier.edata[dgl.EID]
block = dgl.to_block(frontier, [N])
block.edata[dgl.EID] = eid
However, I get the following error:
/opt/dgl/src/graph/transform/to_bipartite.cc:119: Check failed: new_dst.Ptr()[i] != -1 (-1 vs. -1) : Node 39 does not exist in
rhs_nodes
. Argumentrhs_nodes
must contain all the edge destination nodes.
It seems that node_subgraph, relabels the nodes, but when I set it to false I get:
relabel_nodes: Node subgraph only supports relabel_nodes=True
I’m using dgl version 0.9.1.
My main question is how to sample a set of neighbours for a node and make it passable to dgl.to_block