Merge from refactor_test branch and already fixed bugs detected through tests for refactor, and temporarily override method of dataset provided by PyTorch-Geometric to maintain compabillity with PyTorch-Geometric>=1.7.0
Modify the GCN model to support diverse dropout probabilities in different GCN layers.
Improve the sampling speed for BasicTargetDependentSampler base class.
Apply GC before training for every instance of trainer.
Speed up the prediction procedure by caching the immutable edges conducted by deterministic neighbors for specific batch of target nodes in the layer-wise prediction procedure.
1. Implement the Layer-wise prediction in Node Classification Node-wise Sampling Trainer, inspired by the example of reddit provided by PyTorch-Geometric. Particularly, for large graphs, e.g. the Reddit data, it's usually infeasible to conduct inferences with all the neighbor nodes in 2-hop neighborhood/proximity of a specific node. Therefore a practical way to conduct inferences to validate or test the Graph Neural Network is to predict with layer-wise approach, see the source code of NodeClassificationNodeWiseSamplingTrainer and the example on Reddit dataset (example/reddit.py) provided by PyTorch-Geometric for the idea and details.
2. Fix a bug caused by an ambiguous behaviour of torch_geometric.data.sampler.NeighborSampler. More specifically, for only one sampling layer, the conducted item of "adjs" is a 3-item tuple, instead of a sequence of 3-item tuples. This ambiguous behaviour will easily cause bugs in downstream library.
3. Re-add default hyper-parameter in GCN and GraphSAGE to fix initialization issue caused by incorrectly removing default hyper-parametrer space and default hyper-parametrer by Zixin Sun. Sorry.
Reproduce LADIES, a layer-wise sampling approach
assign default hyper parameter space for model
fix bug for configs
Planning major refactorings for upcomming minor unstable version.
Reproduce partial implementation of GraphSAINT, a representative Subgraph-wise sampling method.
Add experimental BaseModel for future major version.
TODO: Migrate the base class for all the concrete models to ClassificationModel (ClassificationApproach)