This is an example of implementing directional_GSN for graph classification in DGL.
directional_GSN is a combination of Graph Substructure Networks (GSN) with Directional Graph Networks (DGN), where we defined a vector field based on substructure encoding instead of Laplacian eigenvectors.
The script in this folder experiments directional_GSN on ogbg-molpcba dataset.
conda create --name gsn python=3.7
conda activate gsn
conda install pytorch==1.11.0 cudatoolkit=10.2 -c pytorch
pip install tqdm
pip install networkx
conda install -c conda-forge graph-tool
pip install ogb
pip install dgl-cu102 -f https://data.dgl.ai/wheels/repo.html
We fix the random seed to 41, and train the model on a single Tesla T4 GPU with 16GB memory.
train_AP | valid_AP | test_AP | #parameters | |
---|---|---|---|---|
directional_GSN | 0.4301 | 0.2598 | 0.2438 | 5142713 |
python preprocessing.py
python main.py --seed 41 --epochs 450 --hidden_dim 420 --out_dim 420 --dropout 0.2
@article{bouritsas2020improving,
title={Improving graph neural network expressivity via subgraph isomorphism counting},
author={Bouritsas, Giorgos and
Frasca, Fabrizio and
Zafeiriou, Stefanos and
Bronstein, Michael M},
journal={arXiv preprint arXiv:2006.09252},
year={2020}
}