原版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