地址:https://github.com/taishan1994/DGL_Chinese_Manual
目錄
begin 安裝 4
使用conda安裝 4
使用pip安裝 4
使用源安裝 4
設置默認的Backend 4
- 圖 4
1.1 關於圖的一些基本定義 4
1.2 圖、節點和邊 5
1.3 節點和邊特征 6
1.4 從外部來源創建圖 7
---1.4.1 從外部庫創建 7
---1.4.2 從磁盤創建 8
1.5 異構圖 9
---1.5.1 創建一個異構圖 9
---1.5.2 處理多種類型 11
---1.5.3 從磁盤建立異構圖 12
---1.5.4 邊類型子圖 12
---1.5.5 將異構圖轉換為同構圖 13
1.6 在GPU上使用DGLGraph 14 - 消息傳遞 15
2.1 消息傳遞案例 15
2.2 內置功函數和消息傳遞APIs 15
2.3 編寫有效的消息傳遞代碼 17
2.4 在圖的一部分上應用消息傳遞 18
2.5 在消息傳遞中使用邊權重 18
2.6 在異構圖中的消息傳遞 18 - 建立GNN模塊 19
3.1 DGL中NN Module的構造函數 19
3.2 GDL中NN Module前向函數 20
---3.2.1 圖檢查和圖類型規范化 21
---3.2.2 消息傳遞和歸約 22
---3.2.3 歸約得到輸出后更新特征 22
3.3 異構GraphConv模塊 23
---3.3.1 HeteroGraphConv實現邏 23 - 圖數據管道 24
4.1 DGLDataset類 24
4.2 下載原始數據(可選) 27
4.3 處理數據 28
---4.3.1 處理圖分類數據集 28
---4.3.2 處理節點分類數據集 30
---4.3.3 處理鏈接預測數據集 31
4.4 保存和加載數據 33
4.5 使用ogb包加載OGB數據集 34 - 訓練圖神經網絡 35
總覽 35
異構圖 35
5.1 節點分類/回歸 36
---5.1.1 總覽 37
---5.1.2 編寫神經網絡模型 37
---5.1.3 訓練循環 37
---5.1.4 異構圖 38
5.2 邊分類/回歸 40
---5.2.1 總覽 40
---5.2.2 模型實現和節點分類的區別 40
---5.2.3 訓練循環 41
---5.2.4 異構圖 42
---5.2.5 預測異構圖上現有邊的邊類型 43
5.3 鏈接預測 45
---5.3.1 總覽 45
---5.3.2 與邊分類模型實現的區別 45
---5.3.3 訓練循環 45
5.4 圖分類 46
---5.4.1 總覽 46
---5.4.2 圖批量 47
---5.4.3 圖讀出 48
---5.4.4 編寫神經網絡模型 48
---5.4.5 訓練循環 49
---5.4.6 異構圖 50 - 大圖的隨機訓練 51
6.1 通過鄰域采樣訓練GNN以進行節點分類 52
---6.1.1 定義鄰域采樣器和數據加載器 52
---6.1.2 為minibatch訓練調整你的模型 53
---6.1.3 訓練循環 53
---6.1.4 對於異構圖 54
6.2 訓練利用鄰域采樣進行邊分類的GNN 55
---6.2.1 定義鄰域采樣器和數據加載器 55
---6.2.2 從原始圖中移除minibatch中的邊以進行鄰域采樣 56
---6.2.3 調整模型以進行minibatch訓練 56
---6.2.4 訓練循環 57
---6.2.5 對於異構圖 58
6.3 通過鄰域采樣訓練GNN進行鏈路預測 60
---6.3.1 使用負采樣定義鄰域采樣器和數據加載器 60
---6.3.2 調整模型以進行minibatch訓練 61
---6.3.3 訓練循環 62
---6.3.4 對於異構圖 62
6.4 自定義領域采樣器 64
---6.4.1 用pencil and paper進行鄰域采樣 65
---6.4.2 查找消息傳遞依賴項 65
---6.4.3 多層minibatch消息傳遞的雙向結構 67
---6.4.4 塊在異構圖上工作 68
---6.4.5 實現自定義鄰域采樣器 69
---6.4.6 為異構圖生成邊界 71
6.5 實現自定義GNN模塊進行minibatch訓練 71
---6.5.1 異構圖 72
---6.5.2 編寫可用於同構圖,二部圖和塊的模塊 74
6.6 對大型圖進行精確離線推斷 74
---6.6.1 實現離線推理 75 - 分布式訓練 76
7.1 分布式訓練的預處理 78
---7.1.1 負載均衡 79
7.2 分布式APIs 79
---7.2.1 DGL分布式模塊的初始化 79
---7.2.2 分布式圖 80
---7.2.3 分布式張量 81
---7.2.4 分布式嵌入 81
---7.2.5 分布式采樣 82
---7.2.6 分割工作量 83
7.3 用於啟動分布式訓練/推理的工具 83