We have updated the implementation with PyTorch and PyTorch-Geometric. Here is the new release. This TensorFlow version is not supported anymore.
This repo contains the implementation of Kriging Convolutional Networks algorithm:
Gabriel Appleby*, Linfeng Liu*, Li-Ping Liu, Kriging Convolutional Networks Gabriel, To appear on AAAI 2020.
- tensorflow (>=1.13.2)
- keras (>=2.2.4)
- sklearn
- scipy
Our model takes
- Data: a numpy saved file (.npz) containing:
- data['Xtrain']: N_tr by D matrix. Here N_tr is the number of training nodes, and D is the feature dimensionality.
- data['Xtest']: N_te by D matrix. N_te is the number of testing nodes.
- data['Ytrain']: N_tr by T matrix. T is the targe dimensionality.
- data['Ytest']: N_te by T matrix.
- n_neighbors: int. The number of nearest neighbors for each node.
- hidden1: int. The number of units in hidden layer 1.
- hidden2: int. The number of units in hidden layer 2. Assigining -1 means not to use this layer.
- dropout: float. The dropout rate.
- kernel_length: folat. The Kernel length for the Gaussian kernel.
There are three models you can choose: kcn, kcn_att, and kcn_sage.
Please refer to the experiment.py
file for details.
For the kcn and kcn-att, we leverage the code from Thomas N. Kipf (https://github.com/tkipf/gcn). For the implementation of kcn-sage, we take advantage of spektral
graph neural network package (https://github.com/danielegrattarola/spektral). We thanks these authors to make their code publicly available.