
Homepage | Papier | Dokumentation | Diskussionsforum | Datensatz |中文
COGDL ist ein Grafik -Deep -Learning -Toolkit, mit dem Forscher und Entwickler Basislinien- oder individuelle Modelle für die Klassifizierung der Knoten, die Diagrammklassifizierung und andere wichtige Aufgaben in der Graph -Domäne problemlos trainieren und vergleichen können.
Wir fassen die Beiträge von COGDL wie folgt zusammen:
Das COGDL -Papier wurde von www 2023 akzeptiert. Finden Sie uns unter www 2023! Wir veröffentlichen auch die neue V0.6-Version , in der weitere Beispiele für das selbstüberprüfte Lernen von Graphen hinzugefügt werden, einschließlich Graphmae, Graphmae2 und BGRL.
Ein kostenloser GNN -Kurs vom COGDL -Team ist unter diesem Link vorhanden. Wir bieten auch ein Diskussionsforum für chinesische Benutzer an.
Die neue Version von V0.5.3 unterstützt das Training mit gemischtem Präzision, indem textit {fp16 = true} festgelegt wird und ein grundlegendes Beispiel von Jittor bietet. Es aktualisiert auch das Tutorial im Dokument, behebt das Herunterladen von Links einiger Datensätze und behebt potenzielle Fehler von Betreibern.
Die neue Version V0.5.2 fügt ein GNN-Beispiel für OGBN-Produkte hinzu und aktualisiert Geom-Datensätze. Es behebt auch einige potenzielle Fehler, einschließlich Einstellung von Geräten, CPU für Inferenz usw.
Die neue Version von V0.5.1 fügt schnelle Operatoren einschließlich SPMM (CPU -Version) und Scatter_max (CUDA -Version) hinzu. Es fügt auch viele Datensätze für die Knotenklassifizierung hinzu, die in diesem Link zu finden sind. ?
Das neue V0.5.0 veröffentlicht und implementiert eine einheitliche Trainingsschleife für GNN. Es wird DataWrapper eingeführt, um die Trainings-/Validierungs-/Testdaten und ModelWrapper zu erstellen, um die Schulungen/Validierungs-/Testschritte zu definieren. ?
Die neue Version V0.4.1 fügt die Implementierung von Deep GNNs und die Empfehlungsaufgabe hinzu. Es unterstützt auch neue Pipelines für die Erzeugung von Einbettungen und Empfehlungen. Willkommen in unserem Tutorial am KDD 2021 um 10:30 - 12:00 Uhr, 14. August (Zeit in Singapur). Weitere Details finden Sie in https://kdd2021graph.github.io/. ?
Die neue Version von V0.4.0 refaktoren die Datenspeicherung (von Data zu Graph ) und bietet schnellere Operatoren, um das GNN -Training zu beschleunigen. Es enthält auch viele selbstbewertete Lernmethoden in Grafiken. Übrigens freuen wir uns, Ihnen mitteilen zu können, dass wir im August ein Tutorial über KDD 2021 geben werden. Weitere Informationen finden Sie in diesem Link. ?
COGDL unterstützt GNN -Modelle mit Mischung aus Experten (MOE). Sie können Fastmoe installieren und Moe GCN jetzt in Cogdl ausprobieren!
Die neue Version V0.3.0 bietet einen schnellen SPMM -Operator, um das GNN -Training zu beschleunigen. Wir veröffentlichen auch die erste Version von COGDL Paper in Arxiv. Sie können sich unserer Diskussion anschließen. ???
Die neue Version V0.2.0 enthält einfach zu bedienende experiment und pipeline -APIs für alle Experimente und Anwendungen. Die experiment API unterstützt AutomL-Funktionen bei der Suche nach Hyperparametern. Diese Veröffentlichung bietet auch OAGBert -API für Modellinferenz ( OAGBert wird von unserem Labor auf großem Maßstab geschult). Einige Funktionen und Modelle werden von der Open -Source -Community hinzugefügt (dank aller Mitwirkenden?).
Die neue Version von V0.1.2 enthält eine Vor-Training-Aufgabe, viele Beispiele, OGB-Datensätze, einige Wissensdiagramm-Einbettungsmethoden und einige neuronale Netzwerkmodelle von Grafiken. Die Abdeckung von COGDL wird auf 80%erhöht. Einige neue APIs wie Trainer und Sampler werden entwickelt und getestet.
Die neue Version von V0.1.1 enthält die Aufgabe der Wissensverbindungsvorhersage, viele hochmoderne Modelle und optuna Unterstützung. Wir haben auch einen chinesischen Wechat -Beitrag über die COGDL -Veröffentlichung.
Bitte befolgen Sie die Anweisungen hier, um PyTorch (https://github.com/pytorch/pytorch#installation) zu installieren.
Wenn Pytorch installiert wurde, kann COGDL wie folgt mit PIP installiert werden:
pip install cogdlInstallieren Sie von der Quelle über:
pip install git+https://github.com/thudm/cogdl.gitOder klonen Sie das Repository und installieren Sie sie mit den folgenden Befehlen:
git clone [email protected]:THUDM/cogdl.git
cd cogdl
pip install -e . Sie können alle möglichen Experimente durch COGDL -APIs durchführen, insbesondere durch experiment . Sie können auch Ihre eigenen Datensätze und Modelle für Experimente verwenden. Ein QuickStart -Beispiel finden Sie im Quick_start.py. Weitere Beispiele finden Sie in den Beispielen/.
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 ) Sie können auch python scripts/train.py --dataset example_dataset --model example_model verwenden, um Beispiel_Model auf Beispiel_Data auszuführen.
cora citeseer sein. Zu den unterstützten Datensätzen gehören "Cora", "Citeseer", "Pumpfed", "PPI", "Wikipedia", "BlogCatalog", "Flickr". Weitere Datensätze finden Sie in den COGDL/Datasets.gcn gat sein. Zu den unterstützten Modellen gehören "GCN", "Gat", "Graphsage", "Deepwalk", "Node2Vec", "Hope", "Grarep", "NetMf", "Netsmf", "Anstoß". Weitere Modelle finden Sie in den COGDL/Modellen.Wenn Sie beispielsweise GCN und GAT auf dem Cora -Datensatz ausführen möchten, mit 5 verschiedenen Samen:
python scripts/train.py --dataset cora --model gcn gat --seed 0 1 2 3 4Erwartete Ausgabe:
| 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 |
Wenn Sie Schwierigkeiten haben, die Dinge in den oben genannten Schritten zum Laufen zu bringen, können Sie ein Problem öffnen. Sie können eine Antwort innerhalb von 24 Stunden erwarten.
Wenn Sie einen gut funktionierenden Algorithmus haben und bereit sind, ihn in unserem Toolkit zu implementieren, um mehr Personen zu helfen, können Sie zuerst ein Problem öffnen und dann eine Pull-Anfrage erstellen, detaillierte Informationen finden Sie hier.
Bevor Sie Ihre Änderung festlegen, führen Sie bitte zunächst pre-commit install aus, um den Git-Hook für das Überprüfen von Codeformat und -Stil mit black und flake8 einzurichten. Dann wird der pre-commit automatisch im git commit ausgeführt! Hier finden Sie detaillierte Informationen von pre-commit .
Wenn Sie parallele Experimente auf Ihrem Server mit mehreren GPUs auf mehreren Modellen GCN und GAT im Cora -Datensatz ausführen möchten:
$ python scripts/train.py --dataset cora --model gcn gat --hidden-size 64 --devices 0 1 --seed 0 1 2 3 4Erwartete Ausgabe:
| Variante | Acc |
|---|---|
| ('Cora', 'GCN') | 0,8236 ± 0,0033 |
| ('Cora', 'Gat') | 0,8262 ± 0,0032 |
Sie könnten verwirrt sein, warum Ihre Pull -Anfrage aufgrund der Abnahme der Abdeckung abgelehnt wurde, obwohl Ihr Modell lokal gut funktioniert. Dies liegt daran, dass Sie keinen Unit -Test beigefügt haben, der im Wesentlichen die zusätzlichen Codezeilen durchläuft, die Sie hinzugefügt haben. Der von GitHub verwendete Travis CI -Dienst führt alle Unit -Tests in dem von Ihnen festgelegten Code durch und prüft, wie viele Zeilen des Codes von den Unit -Tests überprüft wurden. Wenn ein erheblicher Teil Ihres Codes nicht überprüft wurde (unzureichende Abdeckung), wird die Pull -Anfrage abgelehnt.
Wie machen Sie einen Unit -Test?
models/nn/abcgnn.py das die Aufgabe der Knotenklassifizierung ausführt. Anschließend müssen Sie einen Unit -Test in den tests/tasks/test_node_classification.py hinzufügen (oder welche relevante Aufgabe Ihr Modell unternommen).tests/tasks/test_node_classification.py geändert haben, begehen Sie sie zusammen mit Ihren models/nn/abcgnn.py , und Ihre Pull -Anfrage sollte weitergegeben werden. Cogdl wird von Tsinghua, ZJU, Damo Academy und Zhipu.ai entwickelt und gepflegt.
Das Kernentwicklungsteam kann unter [email protected] erreicht werden.
Bitte zitieren Sie unser Papier, wenn Sie unseren Code oder unsere Ergebnisse für Ihre Forschung nützlich finden:
@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}
}