
主页|纸|文档|讨论论坛|数据集|中文
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}
}