JiaxuanYou / P-GNN

Position-aware Graph Neural Networks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Position-aware Graph Neural Networks

License:MIT License


Languages

Language:Python 100.0%