GNN github代碼核心解析 & Trick

原版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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章