基于PyTorch实现GAT和GCN在Cora,CiteSeer,PubMed三个引文数据集上以半监督学习方式进行节点分类任务,并对节点的嵌入表示进行降维可视化。在PPI数据集(多图)上训练GAT模型,表明GAT模型可用于归纳式学习。
环境 |
版本 |
系统 |
Ubuntu 16.04.6 LTS |
深度学习框架 |
PyTorch1.1.0 |
CUDA |
CUDA 10.0.130 |
几何深度学习库 |
PyTorch-Geometric 1.2.0 |
编程语言 |
Python3.7.3 |
package |
version |
matplotlib |
3.0.3 |
numpy |
1.16.2 |
pandas |
0.24.2 |
python |
3.7.3 |
pytorch |
1.1.0 |
scikit-learn |
0.21.0 |
seaborn |
0.9.0 |
texttable |
1.6.1 |
torch-cluster |
1.3.0 |
torch-geometric |
1.2.0 |
torch-scatter |
1.2.0 |
torch-sparse |
0.4.0 |
planetoid(包含三个引文网络数据集,Cora,CiteSeer,PubMed),PPI(蛋白质相互作用网络数据集)
格式 |
说明 |
model_name_dataset_name _result.csv |
节点预测结果 |
model_name_dataset_name _embedding.csv |
嵌入表示结果 |
model_name_dataset_name _accs.svg |
准确率变化图 |
model_name_dataset_name _model.pkl |
模型 |
model_name_dataset_name _embedding.svg |
嵌入降维可视化 |
格式 |
说明 |
GAT_PPI_model.pkl |
模型 |
GAT_PPI.svg |
训练过程变化图 |
pred_*.csv |
节点预测结果 |
real_*.csv |
节点真实结果 |
embedding_*.csv |
嵌入表示结果 |
参数 |
类型 |
说明 |
默认值 |
--dataset-folder |
string |
数据集文件夹 |
"./input/" |
--result-path |
string |
输出结果文件夹 |
"./output/" |
参数 |
类型 |
说明 |
默认值 |
GAT |
string |
GAT模型 |
- |
--dataset-name |
string |
数据集名称 |
"Cora" |
--number-layers |
int |
图网络层数 |
2 |
--attention-out-channels |
int |
GAT层输出通道 |
8 |
--multi-head |
int |
GAT多头 |
8 |
--dropout |
float |
Dropout |
0.6 |
--learning-rate |
float |
学习率 |
0.005 |
--weight-decay |
float |
权重衰减 |
0.0005 |
--epochs |
int |
训练轮数 |
200 |
--n-iter |
int |
t-SNE迭代次数 |
10000 |
参数 |
类型 |
说明 |
默认值 |
GCN |
string |
GCN模型 |
- |
--dataset-name |
string |
数据集名称 |
"Cora" |
--number-layers |
int |
图网络层数 |
2 |
--gcn-out-channels |
int |
图网络层数 |
64 |
--learning-rate |
float |
学习率 |
0.01 |
--weight-decay |
float |
权重衰减 |
0.0005 |
--epochs |
int |
训练轮数 |
200 |
--n-iter |
int |
t-SNE迭代次数 |
10000 |
参数 |
类型 |
说明 |
默认值 |
GAT_PPI |
string |
PPI上的GAT模型 |
- |
--dataset-name |
string |
数据集名称 |
"PPI" |
--number-layers |
int |
神经网络层数 |
3 |
--attention-out-channels |
int |
GAT层输出通道 |
256 |
--multi-head |
int |
多头注意 |
4 |
--learning-rate |
float |
学习率 |
0.005 |
--epochs |
int |
训练轮数 |
100 |
指定训练100轮
python src/main.py --epochs 100
GAT
GCN
PyTorch Geometric
CapsGNN