Official Repository of "A Fair Comparison of Graph Neural Networks for Graph Classification", ICLR 2020
The library includes data and scripts to reproduce the experiments reported in the paper.
Federico Errica, Marco Podda, Davide Bacciu, Alessio Micheli: A Fair Comparison of Graph Neural Networks for Graph Classification. Proceedings of the 8th International Conference on Learning Representations (ICLR 2020).
@inproceedings{errica_fair_2020, title = {A fair comparison of graph neural networks for graph classification}, booktitle = {Proceedings of the 8th {International} {Conference} on {Learning} {Representations} ({ICLR})}, author = {Errica, Federico and Podda, Marco and Bacciu, Davide and Micheli, Alessio}, year = {2020} }
--
Bacciu Davide, Errica Federico, Micheli Alessio, Podda Marco: A Gentle Introduction to Deep Learning for Graphs, Neural Networks, 2020. DOI:
10.1016/j.neunet.2020.06.006.
We provide a script to install the environment. You will need the conda package manager, which can be installed from here.
To install the required packages, follow there instructions (tested on a linux terminal):
1) clone the repository
git clone https://github.com/diningphil/gnn-comparison
2)
cdinto the cloned directory
cd gnn-comparison
3) run the install script
source install.sh []
Where
is an optional argument that can be eithercpu,
cu92,
cu100,
cu101. If you do not provide a cuda version, the script will default to
cpu. The script will create a virtual environment named
gnn-comparison, with all the required packages needed to run our code. Important: do NOT run this command using
bashinstead of
source!
To reproduce the experiments, first preprocess datasets as follows:
python PrepareDatasets.py DATA/CHEMICAL --dataset-name --outer-k 10
python PrepareDatasets.py DATA/SOCIAL_1 --dataset-name --use-one --outer-k 10
python PrepareDatasets.py DATA/SOCIAL_DEGREE --dataset-name --use-degree --outer-k 10
Where
is the name of the dataset. Then, substitute the split (json) files with the ones provided in thedata_splitsfolder.
Please note that dataset folders should be organized as follows:
CHEMICAL: NCI1 DD ENZYMES PROTEINS SOCIAL[_1 | _DEGREE]: IMDB-BINARY IMDB-MULTI REDDIT-BINARY REDDIT-MULTI-5K COLLAB
Then, you can launch experiments by typing:
cp -r DATA/[CHEMICAL|SOCIAL_1|SOCIAL_DEGREE]/ DATA\
python Launch_Experiments.py --config-file --dataset-name --result-folder --debug
Where
is your config file (e.g. config_BaselineChemical.yml), and is the dataset name chosen as before.You can only use CUDA with the
--debugoption, parallel GPUs support is not provided.
If you would like PyTorch not to spawn multiple threads for each process (highly recommended), append
export OMP_NUM_THREADS=1to your .bashrc file.