
Página inicial | Papel | Documentação | Fórum de Discussão | Conjunto de dados |中文
O CogDL é um kit de ferramentas de aprendizado profundo do gráfico que permite que pesquisadores e desenvolvedores treinem e comparem facilmente modelos de linha de base ou personalizados para classificação de nós, classificação de gráficos e outras tarefas importantes no domínio gráfico.
Resumimos as contribuições do COGDL da seguinte forma:
O artigo Cogdl foi aceito pela www 2023. Encontre -nos em www 2023! Também lançamos a nova versão V0.6 , que adiciona mais exemplos de aprendizado auto-supervisionado por gráficos, incluindo Graphmae, Graphmae2 e BGRL.
Um curso GNN gratuito fornecido pela equipe COGDL está presente neste link. Também fornecemos um fórum de discussão para usuários chineses.
A nova versão v0.5.3 suporta treinamento de precisão mista definindo textit {fp16 = true} e fornece um exemplo básico escrito por Jittor. Ele também atualiza o tutorial no documento, corrige o download de links de alguns conjuntos de dados e corrige os bugs em potencial dos operadores.
A nova versão v0.5.2 adiciona um exemplo GNN para produtos OGBN e atualiza os conjuntos de dados geom. Ele também corrige alguns bugs em potencial, incluindo definição de dispositivos, usando CPU para inferência, etc.
A nova versão v0.5.1 adiciona operadores rápidos, incluindo SPMM (versão da CPU) e Scatter_Max (versão CUDA). Ele também adiciona muitos conjuntos de dados para classificação de nós, que podem ser encontrados neste link. ?
O novo lançamento do V0.5.0 projeta e implementa um loop de treinamento unificado para o GNN. Ele apresenta DataWrapper para ajudar a preparar os dados de treinamento/validação/teste e ModelWrapper para definir as etapas de treinamento/validação/teste. ?
A nova versão v0.4.1 adiciona a implementação de GNNs profundos e a tarefa de recomendação. Ele também suporta novos pipelines para gerar incorporações e recomendações. Bem -vindo para participar do nosso tutorial no KDD 2021 às 10:30 às 12:00, 14 de agosto (horário de Cingapura). Mais detalhes podem ser encontrados em https://kdd2021graph.github.io/. ?
A nova versão v0.4.0 refatora o armazenamento de dados (de Data ao Graph ) e fornece aos operadores mais rápidos para acelerar o treinamento do GNN. Também inclui muitos métodos de aprendizado auto-supervisionado nos gráficos. BTW, estamos felizes em anunciar que daremos um tutorial sobre o KDD 2021 em agosto. Consulte este link para obter mais detalhes. ?
O COGDL suporta modelos GNN com mistura de especialistas (MOE). Você pode instalar o FastMoe e experimentar o MOE GCN em COGDL agora!
A nova versão v0.3.0 fornece um operador SPMM rápido para acelerar o treinamento do GNN. Também lançamos a primeira versão do Cogdl Paper em Arxiv. Você pode se juntar à nossa folga para discussão. ???
A nova versão v0.2.0 inclui experiment fáceis de usar e APIs pipeline para todas as experiências e aplicações. A API experiment suporta recursos de automl para pesquisar hiper-parâmetros. Este lançamento também fornece API OAGBert para a inferência do modelo ( OAGBert é treinado em corpus acadêmico em larga escala pelo nosso laboratório). Alguns recursos e modelos são adicionados pela comunidade de código aberto (graças a todos os colaboradores?).
A nova versão v0.1.2 inclui uma tarefa de pré-treinamento, muitos exemplos, conjuntos de dados OGB, alguns métodos de incorporação de gráficos de conhecimento e alguns modelos de rede neural gráfica. A cobertura do COGDL é aumentada para 80%. Algumas novas APIs, como Trainer e Sampler , são desenvolvidas e sendo testadas.
A nova versão v0.1.1 inclui a tarefa de previsão do link do conhecimento, muitos modelos de ponta e suporte optuna . Também temos um post chinês do WeChat sobre o lançamento do Cogdl.
Siga as instruções aqui para instalar Pytorch (https://github.com/pytorch/pytorch#installation).
Quando o Pytorch foi instalado, o CogDL pode ser instalado usando o PIP da seguinte maneira:
pip install cogdlInstale da fonte via:
pip install git+https://github.com/thudm/cogdl.gitOu clonar o repositório e instalar com os seguintes comandos:
git clone [email protected]:THUDM/cogdl.git
cd cogdl
pip install -e . Você pode executar todos os tipos de experimentos através de APIs Cogdl, especialmente experiment . Você também pode usar seus próprios conjuntos de dados e modelos para experimentos. Um exemplo de início rápido pode ser encontrado no Quick_Start.py. Mais exemplos são fornecidos nos exemplos/.
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 ) Você também pode usar python scripts/train.py --dataset example_dataset --model example_model para executar exemplo_model em exemplo_data.
cora citeseer . Os conjuntos de dados suportados incluem 'Cora', 'Citeseer', 'Pumbed', 'PPI', 'Wikipedia', 'Blogcatalog', 'Flickr'. Mais conjuntos de dados podem ser encontrados nos conjuntos de dados COGDL/.gcn gat . Os modelos suportados incluem 'GCN', 'GAT', 'GraphSage', 'Deepwalk', 'Node2vec', 'Hope', 'Grarep', 'Netmf', 'Netsmf', 'Propens'. Mais modelos podem ser encontrados nos modelos COGDL/.Por exemplo, se você deseja executar o GCN e o GAT no conjunto de dados CORA, com 5 sementes diferentes:
python scripts/train.py --dataset cora --model gcn gat --seed 0 1 2 3 4Saída esperada:
| Variante | test_acc | val_acc |
|---|---|---|
| ('Cora', 'GCN') | 0,8050 ± 0,0047 | 0,7940 ± 0,0063 |
| ('Cora', 'gat') | 0,8234 ± 0,0042 | 0,8088 ± 0,0016 |
Se você tiver alguma dificuldade para fazer as coisas funcionarem nas etapas acima, sinta -se à vontade para abrir um problema. Você pode esperar uma resposta dentro de 24 horas.
Se você possui um algoritmo bem apresentado e está disposto a implementá-lo em nosso kit de ferramentas para ajudar mais pessoas, primeiro você pode abrir um problema e depois criar uma solicitação de tração, informações detalhadas podem ser encontradas aqui.
Antes de comprometer sua modificação, primeiro execute pre-commit install para configurar o gancho Git para verificar o formato e o estilo de código usando black e flake8 . Então o pre-commit será executado automaticamente no git commit ! Informações detalhadas do pre-commit podem ser encontradas aqui.
Se você deseja executar experimentos paralelos em seu servidor com várias GPUs em vários modelos, GCN e GAT, no conjunto de dados CORA:
$ python scripts/train.py --dataset cora --model gcn gat --hidden-size 64 --devices 0 1 --seed 0 1 2 3 4Saída esperada:
| Variante | Acc |
|---|---|
| ('Cora', 'GCN') | 0,8236 ± 0,0033 |
| ('Cora', 'gat') | 0,8262 ± 0,0032 |
Você pode estar confuso por que sua solicitação de tração foi rejeitada por causa da redução da cobertura ... ", mesmo que seu modelo esteja funcionando bem localmente. Isso ocorre porque você não incluiu um teste de unidade, que executa essencialmente as linhas extras de código que você adicionou. O serviço Travis CI usado pelo GitHub realiza todos os testes de unidade no código que você cometeu e verifica quantas linhas do código foram verificadas pelos testes de unidade e, se uma parte significativa do seu código não tiver sido verificada (cobertura insuficiente), a solicitação de pull for rejeitada.
Então, como você faz um teste de unidade?
models/nn/abcgnn.py que realiza a tarefa da classificação do nó. Em seguida, você precisa adicionar um teste de unidade dentro dos tests/tasks/test_node_classification.py (ou qualquer tarefa relevante que seu modelo faça).tests/tasks/test_node_classification.py , comprometa -o junto com seus models/nn/abcgnn.py e sua solicitação de tração deve passar. O Cogdl é desenvolvido e mantido por Tsinghua, Zju, Damo Academy e Zhipu.ai.
A equipe de desenvolvimento principal pode ser contatada em [email protected].
Cite nosso artigo se você achar nosso código ou resultados úteis para sua pesquisa:
@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}
}