GNN github代码核心解析 Trick
文章目录
- 原版GCN
- 原版GAT
- myGAT
- DPGN: Distribution Propagation Graph Network for Few-shot Learning
原版GCN
-
full-batch
-
transductive learning: 训练阶段与测试阶段都基于同样的图结构(不能改变邻接矩阵adj)
-
需要完整图结构
-
资料:
- https://github.com/tkipf/gcn/issues
原版GAT
-
full-batch
-
对相邻节点的注意力(权重W)不同
-
Inductive learning
- Global graph attention: 丢掉图结构效果差
- Mask graph attention
-
参考资料:
- https://zhuanlan.zhihu.com/p/81350196?utm_source=wechat_session
- https://blog.csdn.net/weixin_36474809/article/details/89401552
- https://github.com/PetarV-/GAT
myGAT
-
Inductive learning::训练阶段与测试阶段需要处理的graph不同。通常是训练阶段只是在子图(subgraph)上进行,测试阶段需要处理未知的顶点。(unseen node): training的时候不需要val\test的图结构(邻接矩阵adj)
- 在处理数据时分别保存train_index\val_index\test_index,实现数据集的分割。并为后续邻接矩阵adj的分割提供了依据
-
通过
from torch.utils.data import DataLoader实现batch操作(尤其是实现了邻接矩阵adj的三维)- 每一个batch下:通过BFS-sample,对当前节点进行bfs,找到相邻的所有节点,再递进到下一层。
- 同一个batch下的节点有相同的label
-
accuracy计算: 每个batch选择1个节点作为valid与label进行计算
DPGN: Distribution Propagation Graph Network for Few-shot Learning
- 使用from collections import OrderedDict 存储参数
config = OrderedDict()config['dataset_name'] = 'mini-imagenet'
config['num_generation'] = 6
config['emb_size'] = 128
config['backbone'] = 'resnet12'
...
config['train_config'] = train_opt
config['eval_config'] = eval_opt
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
