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)
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.
- PyTorch 1.0+
- Python 3.7+
python train.py --gpu 0 --dataset cora
Test envs:
- RTX 2080Ti (Driver Version:
450.80.02
, CUDA11.0
), PyTorch1.8.1
- Tesla V100 (Driver Version:
450.80.02
, CUDA11.2
), PyTorch1.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 |
[1] Kipf & Welling, Semi-Supervised Classification with Graph Convolutional Networks, 2016
[2] Sen et al., Collective Classification in Network Data, AI Magazine 2008
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}
}