/pygcn

Graph Convolutional Networks in PyTorch

Primary LanguagePythonMIT LicenseMIT

Graph Convolutional Networks in PyTorch

PyTorch implementation of Graph Convolutional Networks (GCNs) for semi-supervised classification [1].

For a high-level introduction to GCNs, see:

Thomas Kipf, Graph Convolutional Networks (2016)

Graph Convolutional Networks

This implementation makes use of the Cora dataset from [2].

This implementation applies the data preprocessing functions from the official TF implementation. The implementation of layers equivalent, with the same initialization method. The only different is the early stopping patience, which is tuned to a difference value according to the validation accuracy on the Cora dataset.

Requirements

  • PyTorch 1.0+
  • Python 3.7+

Usage

python train.py --gpu 0 --dataset cora

Results

Test envs:

  • RTX 2080Ti (Driver Version: 450.80.02, CUDA 11.0), PyTorch 1.8.1
  • Tesla V100 (Driver Version: 450.80.02, CUDA 11.2), PyTorch 1.8.1
Cora CiteSeer PubMed
The Paper 81.5 70.3 79.0
RTX 2080Ti 81.9 70.3 79.0
Tesla V100 80.6 71.1 78.4

References

[1] Kipf & Welling, Semi-Supervised Classification with Graph Convolutional Networks, 2016

[2] Sen et al., Collective Classification in Network Data, AI Magazine 2008

Cite

Please cite the paper if you use this code in your own work:

@article{kipf2016semi,
  title={Semi-Supervised Classification with Graph Convolutional Networks},
  author={Kipf, Thomas N and Welling, Max},
  journal={arXiv preprint arXiv:1609.02907},
  year={2016}
}