
Página de inicio | Papel | Documentación | Foro de discusión | Conjunto de datos |中文
COGDL es un kit de herramientas de aprendizaje profundo de gráfico que permite a los investigadores y desarrolladores capacitar y comparar fácilmente modelos de referencia o personalizados para la clasificación de nodos, la clasificación de gráficos y otras tareas importantes en el dominio gráfico.
Resumimos las contribuciones de COGDL de la siguiente manera:
El documento Cogdl fue aceptado por WWW 2023. ¡Encuéntranos en WWW 2023! También lanzamos la nueva versión V0.6 que agrega más ejemplos de aprendizaje auto-supervisado de Graph, incluidos Graphmae, Graphmae2 y BGRL.
Un curso GNN gratuito proporcionado por el equipo COGDL está presente en este enlace. También proporcionamos un foro de discusión para usuarios chinos.
La nueva versión V0.5.3 admite la capacitación de precisión mixta al establecer textit {fp16 = true} y proporciona un ejemplo básico escrito por Jittor. También actualiza el tutorial en el documento, corrige los enlaces de descarga de algunos conjuntos de datos y corrige posibles errores de operadores.
La nueva versión V0.5.2 agrega un ejemplo de GNN para los productos de datos GEOM y actualizaciones de OGBN. También corrige algunos errores potenciales, incluidos los dispositivos de configuración, utilizando CPU para inferencia, etc.
La nueva versión V0.5.1 agrega operadores rápidos que incluyen SPMM (versión de CPU) y Scatter_Max (versión CUDA). También agrega muchos conjuntos de datos para la clasificación de nodos que se pueden encontrar en este enlace. ?
La nueva versión V0.5.0 diseña e implementa un bucle de entrenamiento unificado para GNN. Presenta DataWrapper para ayudar a preparar los datos de capacitación/validación/prueba y ModelWrapper para definir los pasos de capacitación/validación/prueba. ?
La nueva versión V0.4.1 agrega la implementación de GNN profundos y la tarea de recomendación. También admite nuevas tuberías para generar integridades y recomendaciones. Bienvenido a unirse a nuestro tutorial en KDD 2021 a las 10:30 a.m. a 12:00 a.m., 14 de agosto (hora de Singapur). Se pueden encontrar más detalles en https://kdd2021graph.github.io/. ?
El nuevo V0.4.0 Refactores de lanzamiento El almacenamiento de datos (desde Data hasta Graph ) y proporciona operadores más rápidos para acelerar la capacitación de GNN. También incluye muchos métodos de aprendizaje auto-supervisados en gráficos. Por cierto, nos complace anunciar que daremos un tutorial sobre KDD 2021 en agosto. Consulte este enlace para más detalles. ?
COGDL admite modelos GNN con una mezcla de expertos (MOE). ¡Puede instalar FastMoe y probar Moe GCN en COGDL ahora!
La nueva versión V0.3.0 proporciona un operador SPMM rápido para acelerar el entrenamiento GNN. También lanzamos la primera versión de COGDL Paper en ARXIV. Puedes unirte a nuestra holgura para la discusión. ????
La nueva versión V0.2.0 incluye experiment fáciles de usar y API pipeline para todos los experimentos y aplicaciones. La API experiment admite características AUTOML de la búsqueda de hiperparámetros. Este lanzamiento también proporciona API OAGBert para la inferencia del modelo ( OAGBert está capacitado en un corpus académico a gran escala por nuestro laboratorio). La comunidad de código abierto agrega algunas características y modelos (¿gracias a todos los contribuyentes?).
La nueva versión V0.1.2 incluye una tarea de pre-entrenamiento, muchos ejemplos, conjuntos de datos OGB, algunos métodos de incrustación de gráficos de conocimiento y algunos modelos de red neuronales gráficos. La cobertura de COGDL se incrementa al 80%. Algunas API nuevas, como Trainer y Sampler , se desarrollan y se están probando.
La nueva versión V0.1.1 incluye la tarea de predicción de enlaces de conocimiento, muchos modelos de última generación y soporte optuna . También tenemos una publicación china de WeChat sobre el lanzamiento de COGDL.
Siga las instrucciones aquí para instalar Pytorch (https://github.com/pytorch/pytorch#installation).
Cuando se ha instalado Pytorch, COGDL se puede instalar utilizando PIP de la siguiente manera:
pip install cogdlInstalar desde la fuente a través de:
pip install git+https://github.com/thudm/cogdl.gitO clonar el repositorio e instalar con los siguientes comandos:
git clone [email protected]:THUDM/cogdl.git
cd cogdl
pip install -e . Puede ejecutar todo tipo de experimentos a través de las API COGDL, especialmente experiment . También puede usar sus propios conjuntos de datos y modelos para experimentos. Se puede encontrar un ejemplo rápido en el Quick_Start.py. Se proporcionan más ejemplos en los ejemplos/.
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 ) También puede usar python scripts/train.py --dataset example_dataset --model example_model para ejecutar Ejemplo_Model en Ejemplo_Data.
cora citeseer . Los conjuntos de datos compatibles incluyen 'Cora', 'CitaSeer', 'Pumbed', 'PPI', 'Wikipedia', 'BlogCatalog', 'Flickr'. Se pueden encontrar más conjuntos de datos en los conjuntos de datos COGDL/.gcn gat . Los modelos compatibles incluyen 'GCN', 'GAT', 'GraphSage', 'DeepWalk', 'Node2Vec', 'Hope', 'GRAREP', 'NETMF', 'NETSMF', 'PRONO'. Se pueden encontrar más modelos en los modelos COGDL/.Por ejemplo, si desea ejecutar GCN y GAT en el conjunto de datos Cora, con 5 semillas diferentes:
python scripts/train.py --dataset cora --model gcn gat --seed 0 1 2 3 4Salida 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 |
Si tiene dificultades para que las cosas funcionen en los pasos anteriores, no dude en abrir un problema. Puede esperar una respuesta dentro de las 24 horas.
Si tiene un algoritmo bien realizado y está dispuesto a implementarlo en nuestro kit de herramientas para ayudar a más personas, primero puede abrir un problema y luego crear una solicitud de extracción, se puede encontrar información detallada aquí.
Antes de cometer su modificación, primero ejecute pre-commit install para configurar el gancho GIT para verificar el formato de código y el estilo con black y flake8 . ¡Entonces el pre-commit se ejecutará automáticamente en git commit ! Se puede encontrar información detallada del pre-commit aquí.
Si desea ejecutar experimentos paralelos en su servidor con múltiples GPU en múltiples modelos, GCN y GAT, en el conjunto de datos CORA:
$ python scripts/train.py --dataset cora --model gcn gat --hidden-size 64 --devices 0 1 --seed 0 1 2 3 4Salida esperada:
| Variante | Accidentista |
|---|---|
| ('Cora', 'GCN') | 0.8236 ± 0.0033 |
| ('Cora', 'Gat') | 0.8262 ± 0.0032 |
Es posible que esté confundido por qué su solicitud de extracción fue rechazada debido a la "cobertura disminuida ...", aunque su modelo funcione bien localmente. Esto se debe a que no ha incluido una prueba unitaria, que esencialmente se ejecuta a través de las líneas adicionales de código que agregó. El servicio Travis CI utilizado por GitHub realiza todas las pruebas unitarias en el código que cometió y verifica cuántas líneas del código han sido revisadas por las pruebas unitarias, y si no se ha verificado una parte significativa de su código (cobertura insuficiente), la solicitud de extracción se rechaza.
Entonces, ¿cómo se hace una prueba unitaria?
models/nn/abcgnn.py que hace la tarea de clasificación de nodos. Luego, debe agregar una prueba unitaria dentro de las tests/tasks/test_node_classification.py (o cualquier tarea relevante que haga su modelo).tests/tasks/test_node_classification.py , confirmarlo junto con sus models/nn/abcgnn.py y su solicitud de extracción debe pasar. COGDL es desarrollado y mantenido por Tsinghua, ZJU, Damo Academy y Zhipu.ai.
Se puede contactar al equipo de desarrollo principal en [email protected].
Cite nuestro documento si encuentra útil nuestro código o resultados para su investigación:
@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}
}