Home

Awesome

Digraph Inception Convolutional Networks

Paper | Poster | Supplementary

This repository is the official PyTorch implementation of Digraph Inception Convolutional Networks, where we make GCNs available in digraphs (directed graphs) and propose an Inception network to learn multi-scale features in digraphs.

<center>Illustration of digraph conv</center> <center><img src="imgs/directed.png" alt="directed_schema" style="zoom:50%;" /></center>

 

<center>Illustration of DiGCN model</center> <center><img src="imgs/ib.png" alt="inception_block" style="zoom:100%;" /></center> &nbsp;

If you find our work useful, please considering citing

@article{tong2020digraph,
  title={Digraph Inception Convolutional Networks},
  author={Tong, Zekun and Liang, Yuxuan and Sun, Changsheng and Li, Xinke and Rosenblum, David and Lim, Andrew},
  journal={Advances in Neural Information Processing Systems},
  volume={33},
  year={2020}
}

Requirements

Our project is developed using Python 3.7, PyTorch 1.5.0 with CUDA10.2. We recommend you to use anaconda for dependency configuration.

First create an anaconda environment called DiGCN by

conda create -n DiGCN python=3.7
conda activate DiGCN

Then, you need to install torch manually to fit in with your server environment (e.g. CUDA version). For the torch and torchvision used in my project, run

conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch

Besides, torch-scatter and torch-sparse are required for dealing with sparse graph. For these two packages, please follow their official instruction torch-scatter and torch-sparse.

Other requirements can be set up through:

cd DiGCN
pip install -e .

Run

cd code
python gcn.py --gpu-no 0 --dataset cora_ml
python digcn.py --gpu-no 0 --dataset cora_ml
python digcn_ib.py --gpu-no 0 --dataset cora_ml

Results

<center><img src="imgs/results.png" alt="results" style="zoom:100%;" /></center>

License

DiGCN is released under the MIT License. See the LICENSE file for more details.

Acknowledgements

The template is borrowed from Pytorch-Geometric benchmark suite. We thank the authors of following works for opening source their excellent codes. Pytorch-Geometric,Graph2Gauss,GNN-benchmark