这是图形卷积网络的张量实现,如我们的论文中所述(半监督)节点分类的任务,如我们的论文中所述:
Thomas N. Kipf,Max Welling,与图形卷积网络的半监督分类(ICLR 2017)
有关高级解释,请查看我们的博客文章:
Thomas Kipf,图形卷积网络(2016)
python setup.py install
cd gcn
python train.py
为了使用自己的数据,您必须提供
在utils.py
中查看load_data()
函数以获取示例。
在此示例中,我们加载引文网络数据(Cora,Citeseer或PubMed)。可以在此处找到原始数据集:http://www.cs.umd.edu/~sen/lbc-proj/lbc.html。在我们的版本(请参阅data
文件夹)中,我们使用https://github.com/kimiyoung/planetoid提供的数据集拆分(Zhilin Yang,William W. Cohen,Ruslan Salakhutdinov,Revising semi-supersing semi-supersing semi-supervisting semi-supervisting semi-supervisting semi-supervising a Graph emperdings in Graph Embedings,icml 2016)。
您可以按以下方式指定数据集:
python train.py --dataset citeseer
(或通过编辑train.py
)
您可以在以下模型之间进行选择:
gcn
:图形卷积网络(Thomas N. Kipf,Max Welling,与图形卷积网络的半监督分类,2016年)gcn_cheby
:Chebyshev多项式版本的图形卷积网络(MichaëlDefferrard,Xavier Bresson,Pierre Vandergheynst,具有快速局部光谱滤波的图形上的卷积神经网络,NIPS,NIPS,NIPS 2016)dense
:支持稀疏输入的基本多层感知器我们的框架还支持与每个邻接矩阵的多个图形实例(潜在不同大小)的分类分类。最好将各自的特征矩阵连接并构建一个(稀疏)块对基矩阵,其中每个块对应于一个图实例的邻接矩阵。对于汇总(对于图形输出而不是节点级输出),最好指定一个简单的池矩阵,该矩阵从其各自的图形实例中收集功能,如下所示:
如果您在自己的工作中使用此代码,请引用我们的论文:
@inproceedings{kipf2017semi,
title={Semi-Supervised Classification with Graph Convolutional Networks},
author={Kipf, Thomas N. and Welling, Max},
booktitle={International Conference on Learning Representations (ICLR)},
year={2017}
}