# gcn **Repository Path**: wzxin/gcn ## Basic Information - **Project Name**: gcn - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-03 - **Last Updated**: 2021-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Graph Convolutional Networks This is a TensorFlow implementation of Graph Convolutional Networks for the task of (semi-supervised) classification of nodes in a graph, as described in our paper: Thomas N. Kipf, Max Welling, [Semi-Supervised Classification with Graph Convolutional Networks](http://arxiv.org/abs/1609.02907) (ICLR 2017) For a high-level explanation, have a look at our blog post: Thomas Kipf, [Graph Convolutional Networks](http://tkipf.github.io/graph-convolutional-networks/) (2016) ## Installation ```bash python setup.py install ``` ## Requirements * tensorflow (>0.12) * networkx ## Run the demo ```bash python train.py ``` ## Data In order to use your own data, you have to provide * an N by N adjacency matrix (N is the number of nodes), * an N by D feature matrix (D is the number of features per node), and * an N by E binary label matrix (E is the number of classes). Have a look at the `load_data()` function in `utils.py` for an example. In this example, we load citation network data (Cora, Citeseer or Pubmed). The original datasets can be found here: http://linqs.cs.umd.edu/projects/projects/lbc/. In our version (see `data` folder) we use dataset splits provided by https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, [Revisiting Semi-Supervised Learning with Graph Embeddings](https://arxiv.org/abs/1603.08861), ICML 2016). You can specify a dataset as follows: ```bash python train.py --dataset citeseer ``` (or by editing `train.py`) ## Models You can choose between the following models: * `gcn`: Graph convolutional network (Thomas N. Kipf, Max Welling, [Semi-Supervised Classification with Graph Convolutional Networks](http://arxiv.org/abs/1609.02907), 2016) * `gcn_cheby`: Chebyshev polynomial version of graph convolutional network as described in (Michaƫl Defferrard, Xavier Bresson, Pierre Vandergheynst, [Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering](https://arxiv.org/abs/1606.09375), NIPS 2016) * `dense`: Basic multi-layer perceptron that supports sparse inputs ## Cite Please cite our 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} } ```