This PR introduces some optimizations and fixes for SGConv.
Fix:
previously the loop for propagation involved x = x .* c' and it was the only place where x was referred to after expansion to xi and xj. in the propagation process xj was passed which made this line of code unnecessary and potentially problematic (remember that for GNNHeteroGraph x contains both xi and xj)
Optimizations:
reduces number of ifs as definition for edge_t not necessary anymore (after changing add_self_loop behavior it was used only once in degree)
introduces optimization for multiplying weights before convolution if Dout < Din (but only when g is not GNNHeteroGraph
This PR introduces some optimizations and fixes for SGConv.
Fix:
x = x .* c'
and it was the only place wherex
was referred to after expansion toxi
andxj
. in the propagation processxj
was passed which made this line of code unnecessary and potentially problematic (remember that for GNNHeteroGraphx
contains bothxi
andxj
)Optimizations:
edge_t
not necessary anymore (after changingadd_self_loop
behavior it was used only once indegree
)Dout < Din
(but only wheng
is notGNNHeteroGraph