1、准备工作
数据集
数据集 | #图 | #节点 | #边 | #特征 | #标签(y) |
---|---|---|---|---|---|
Cora | 1 | 2708 | 5429 | 1433 | 7 |
Citeseer | 1 | 3327 | 4732 | 3703 | 6 |
Pubmed | 1 | 19717 | 44338 | 500 | 3 |
数据集划分方式:https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, Revisiting Semi-Supervised Learning with Graph Embeddings, ICML 2016)
数据集划分(数量) | 训练集 | 验证集 | 测试集 |
---|---|---|---|
Cora | 140 | 500 | 1000 |
Citeseer | 120 | 500 | 1015 |
Pubmed | 60 | 500 | 1000 |
代码
参考:https://github.com/FighterLYL/GraphNeuralNetwork/tree/master/chapter7。
使用监督学习的方法,增加了Citeseer和Pubmed数据集,并对其代码进行了重构和调试,排除了一些小bug,增加了详细的注释。
完善后的代码:https://github.com/ytchx1999/GraphSAGE-Cora-Citeseer-Pubmed。
实验环境
其实本地用mac的CPU跑也蛮快的。。
但是还是用GPU(最开始是一块2080Ti,后面用的Tesla T4)会更快一点,毕竟time is money!
2、超参数
BATCH_SIZE = 16 # 批处理大小
EPOCHS = 10
NUM_BATCH_PER_EPOCH = 20 # 每个epoch循环的批次数
LEARNING_RATE = 「0.1,0.01」 # 学习率,每5个epoch x0.1
3、实验结果
2层SageGCN层
GraphSage(
in_features=【输入的特征维度】, num_neighbors_list=[10, 10]
(