Ensure consistent truth and constructed edge orientation
This MR addresses issue #123
- All edges are oriented by |r| (instead of |r - r0|) by default, including truth and constructed edges in all stages (data reading, graph construction (module map + metric learning), edge classification..etc)
- Since truth and constructed edges are supposed to have the consistent orientation and the orientation is not supposed to change throughout the pipeline, all the unnecessary reorientation of edges is removed.
- Random flipping for the edge filtering is moved into the filtering model itself, and the edges are reoriented back at the end of the model.
In case the change results in unexpected difference in performance, the truth edge orientation definition is kept configurable with the flag use_truth_R
.
In addition, also including a few minor fixes for the GNN filtering.