
主頁|紙|文檔|討論論壇|數據集|中文
COGDL是一個圖形深度學習工具包,可讓研究人員和開發人員輕鬆訓練和比較基線或定制模型,用於節點分類,圖形分類以及圖形域中的其他重要任務。
我們總結了COGDL的貢獻如下:
COGDL紙被www 2023接受。在www 2023上找到我們!我們還發布了新的V0.6版本,該版本添加了更多圖形自我監督學習的示例,包括GraphMae,GraphMae2和BGRL。
COGDL團隊提供的免費GNN課程在此鏈接中存在。我們還為中國用戶提供了一個討論論壇。
新的V0.5.3版本通過設置 textit {fp16 = true}來支持混合精確培訓,並提供了Jittor編寫的基本示例。它還更新文檔中的教程,修復了某些數據集的下載鏈接,並修復了操作員的潛在錯誤。
新的V0.5.2版本添加了一個用於OGBN產品的GNN示例,並更新GEOM數據集。它還修復了一些潛在的錯誤,包括設置設備,使用CPU進行推理等。
新的V0.5.1版本添加了包括SPMM(CPU版本)和STACT_MAX(CUDA版本)在內的快速運營商。它還添加了許多用於節點分類的數據集,可以在此鏈接中找到。 ?
新的V0.5.0發布並實現了GNN的統一培訓循環。它介紹了DataWrapper ,以幫助準備培訓/驗證/測試數據和ModelWrapper ,以定義培訓/驗證/測試步驟。 ?
新的v0.4.1版本添加了深度GNN的實現和建議任務。它還支持用於生成嵌入和建議的新管道。歡迎加入我們在KDD 2021的教程,於8月14日(新加坡時間)上午10:30-上午12:00。更多詳細信息可以在https://kdd2021graph.github.io/中找到。 ?
新的v0.4.0釋放重構數據存儲(從Data到Graph ),並提供了更快的操作員來加快GNN訓練。它還包括許多圖形上的自我監督學習方法。順便說一句,我們很高興地宣布,我們將在8月對KDD 2021提供一個教程。請參閱此鏈接以獲取更多詳細信息。 ?
COGDL支持與專家混合(MOE)混合的GNN模型。您可以立即安裝FastMoe並在COGDL中嘗試MOE GCN !
新的V0.3.0版本提供了一個快速的SPMM操作員,以加快GNN培訓。我們還在Arxiv中發布了第一版的COGDL紙。您可以加入我們的休閒討論。 ???
新的V0.2.0發布包括用於所有實驗和應用的易於使用的experiment和pipeline API。 experiment API支持搜索超參數的自動化功能。該版本還為模型推斷提供了OAGBert API(我們的實驗室對OAGBert進行了大規模學術語料庫的培訓)。開源社區添加了某些功能和模型(感謝所有貢獻者?)。
新的V0.1.2版本包括一個預訓練任務,許多示例,OGB數據集,一些知識圖嵌入方法以及一些圖形神經網絡模型。 COGDL的覆蓋範圍增加到80%。開發並測試了一些新的API,例如Trainer和Sampler 。
新的v0.1.1發布包括知識鏈接預測任務,許多最新模型和optuna支持。我們還有一個有關COGDL版本的中國微信。
請按照此處的說明進行安裝Pytorch(https://github.com/pytorch/pytorch#installation)。
安裝Pytorch後,可以使用PIP安裝COGDL如下:
pip install cogdl從源安裝通過:
pip install git+https://github.com/thudm/cogdl.git或克隆存儲庫,並使用以下命令安裝:
git clone [email protected]:THUDM/cogdl.git
cd cogdl
pip install -e . 您可以通過COGDL API進行各種實驗,尤其是experiment 。您還可以使用自己的數據集和模型進行實驗。可以在quick_start.py中找到一個QuickStart示例。示例中提供了更多示例。
from cogdl import experiment
# basic usage
experiment ( dataset = "cora" , model = "gcn" )
# set other hyper-parameters
experiment ( dataset = "cora" , model = "gcn" , hidden_size = 32 , epochs = 200 )
# run over multiple models on different seeds
experiment ( dataset = "cora" , model = [ "gcn" , "gat" ], seed = [ 1 , 2 ])
# automl usage
def search_space ( trial ):
return {
"lr" : trial . suggest_categorical ( "lr" , [ 1e-3 , 5e-3 , 1e-2 ]),
"hidden_size" : trial . suggest_categorical ( "hidden_size" , [ 32 , 64 , 128 ]),
"dropout" : trial . suggest_uniform ( "dropout" , 0.5 , 0.8 ),
}
experiment ( dataset = "cora" , model = "gcn" , seed = [ 1 , 2 ], search_space = search_space )您也可以使用python scripts/train.py --dataset example_dataset --model example_model在example_data上運行example_model。
cora citeseer之類的空間的數據集列表。支持的數據集包括“ Cora”,“ Citeseer”,“ Pumbed”,“ PPI”,“ Wikipedia”,“ BlogCatalog”,“ Flickr”。可以在COGDL/數據集中找到更多數據集。gcn gat之類的型號列表。支持的模型包括“ GCN”,“ GAT”,“ GraphSage”,“ DeepWalk”,“ Node2Vec”,“ Hope”,“ Grarep”,“ Netmf”,“ NetSmf”,“ Netsmf”,“ Prone”。可以在COGDL/型號中找到更多模型。例如,如果您想在Cora數據集上運行GCN和GAT,則有5種不同的種子:
python scripts/train.py --dataset cora --model gcn gat --seed 0 1 2 3 4預期輸出:
| 變體 | test_acc | val_acc |
|---|---|---|
| ('cora','gcn') | 0.8050±0.0047 | 0.7940±0.0063 |
| ('cora','gat') | 0.8234±0.0042 | 0.8088±0.0016 |
如果您在上述步驟中遇到任何困難,請隨時打開問題。您可以在24小時內回复。
如果您具有良好的算法,並且願意在我們的工具包中實施它來幫助更多人,則可以首先打開問題,然後創建一個拉動請求,可以在此處找到詳細的信息。
在進行修改之前,請首先運行pre-commit install ,以設置GIT掛鉤,以使用black和flake8檢查代碼格式和样式。然後, pre-commit將自動運行在git commit上!可以在此處pre-commit詳細信息。
如果您想在多個型號上使用多個GPU在服務器上運行並行實驗,則在CORA數據集上進行GCN和GAT:
$ python scripts/train.py --dataset cora --model gcn gat --hidden-size 64 --devices 0 1 --seed 0 1 2 3 4預期輸出:
| 變體 | ACC |
|---|---|
| ('cora','gcn') | 0.8236±0.0033 |
| ('cora','gat') | 0.8262±0.0032 |
您可能會感到困惑為什麼即使您的模型在本地工作正常,因此由於“覆蓋範圍降低”問題而被拒絕了。這是因為您尚未包括單元測試,該測試本質上可以通過添加的額外代碼行運行。 GitHub使用的Travis CI服務對您所承諾的代碼進行了所有單位測試,並檢查了單位測試已檢查了多少行代碼,並且如果未檢查代碼的很大一部分(覆蓋範圍不足),則拒絕拉請請求。
那麼您如何進行單位測試?
models/nn/abcgnn.py中實現了GNN模型。然後,您需要在腳本tests/tasks/test_node_classification.py (或模型執行的任何相關任務)中添加單元測試。tests/tasks/test_node_classification.py之後,將其與您的models/nn/abcgnn.py一起提交,並且您的拉請求應通過。 COGDL由Tsinghua,Zju,Damo Academy和Zhipu.ai開發和維護。
可以通過[email protected]與核心開發團隊聯繫。
如果您發現我們的代碼或結果對您的研究有用,請引用我們的論文:
@inproceedings{cen2023cogdl,
title={CogDL: A Comprehensive Library for Graph Deep Learning},
author={Yukuo Cen and Zhenyu Hou and Yan Wang and Qibin Chen and Yizhen Luo and Zhongming Yu and Hengrui Zhang and Xingcheng Yao and Aohan Zeng and Shiguang Guo and Yuxiao Dong and Yang Yang and Peng Zhang and Guohao Dai and Yu Wang and Chang Zhou and Hongxia Yang and Jie Tang},
booktitle={Proceedings of the ACM Web Conference 2023 (WWW'23)},
year={2023}
}