Position-aware Graph Neural Networks
This repository is the official PyTorch implementation of "Position-aware Graph Neural Networks".
Jiaxuan You, Rex Ying, Jure Leskovec, Position-aware Graph Neural Networks, ICML 2019 (long oral).
Installation
- Install PyTorch (tested on 1.0.0), please refer to the offical website for further details
conda install pytorch torchvision cudatoolkit=9.0 -c pytorch
- Install PyTorch Geometric (tested on 1.1.2), please refer to the offical website for further details
pip install --verbose --no-cache-dir torch-scatter
pip install --verbose --no-cache-dir torch-sparse
pip install --verbose --no-cache-dir torch-cluster
pip install --verbose --no-cache-dir torch-spline-conv (optional)
pip install torch-geometric
- Install networkx (tested on 2.3), make sure you are not using networkx 1.x version!
pip install networkx
- Install tensorboardx
pip install tensorboardX
- If you wish to use PPI dataset, unzip
data/ppi.zip
Run
- 3-layer GCN, grid
python main.py --model GCN --layer_num 3 --dataset grid
- 2-layer P-GNN, grid
python main.py --model PGNN --layer_num 2 --dataset grid
- 2-layer P-GNN, grid, with 2-hop shortest path distance
python main.py --model GCN --layer_num 2 --approximate 2 --dataset grid
- 3-layer GCN, all datasets
python main.py --model GCN --layer_num 3 --dataset All
- 2-layer PGNN, all datasets
python main.py --model PGNN --layer_num 2 --dataset All
You are highly encouraged to tune all kinds of hyper-parameters to get better performance. We only did very limited hyper-parameter tuning.
We recommend using tensorboard to monitor the training process. To do this, you may run
tensorboard --logdir runs