Open lzhmarkk opened 2 years ago
Thanks for reporting this. Do you have any specific reason to do like this? pull/push/send_and_recv
are to be deprecated. they can be achieved via in_subgraph()
and update_all()
. Could you try with it?
Thanks!
I just want to update the embedding of nodes within the mini-batch, when handling temporal graphs. It seems in_subgraph()
and update_all()
are sufficient.
Would you mind updating deprecation in the docs later?
This issue has been automatically marked as stale due to lack of activity. It will be closed if no further activity occurs. Thank you
🐛 Bug
Edge-wise User-defined Function EdgeBatch.edges() raise error as it confuses original graph and compute graph.
It happens when we use UDF as the message function inside of
pull()
,push()
andsend_and_recv()
as they all callDGLHeteroGraph._create_compute_graph()
. It extracts a subgraph named compute graph from the original one in order to compute message passing.However, in this function, it sets the edges' id
_eid
according to the original graph instead of the relabelled ones, making edge index_eid
exceeds the total number of edges in the compute graph. Thus, when we callEdgeBatch.edges()
in the UDF, trying to find the edges with_eid
in the compute graph instead of the original one causesInvalid edge ID
error.To Reproduce
Run the code below.
pull()
,push()
andsend_and_recv()
all raise this error.Expected behavior
Error
dgl._ffi.base.DGLError: Invalid edge ID 1
is raised.Environment