Dokumentation | Papier | Colab Notebooks und Video -Tutorials | Externe Ressourcen | OGB -Beispiele
PYG (Pytorch Geometric) ist eine Bibliothek, die auf Pytorch basiert, um die neuronalen Netzwerke (GNNs) für eine Vielzahl von Anwendungen in Bezug auf strukturierte Daten problemlos zu schreiben und zu trainieren.
Es besteht aus verschiedenen Methoden zum Deep -Lernen in Grafiken und anderen unregelmäßigen Strukturen, auch als geometrisches Deep Learning bekannt, aus einer Vielzahl veröffentlichter Artikel. Darüber hinaus besteht es aus benutzerfreundlichen Mini-Batch-Ladern für viele kleine und einzelne Riesengrafiken, Multi-GPU-Support, torch.compile -Unterstützung, DataPipe Unterstützung, eine große Anzahl gemeinsamer Benchmark-Datensätze (basierend auf einfachen Schnittstellen, um Ihre eigenen zu erstellen), und hilfreiche Transformationen, sowohl für Lernen auf Arbitrary-Diagramme als auch auf Anlassgrafs.
Klicken Sie hier, um unserer Slack -Community beizutreten!
- Bibliothekshighlights
- Schnelle Tour für neue Benutzer
- Architekturübersicht
- Implementierte GNN -Modelle
- Installation
Bibliothekshighlights
Unabhängig davon, ob Sie ein Forscher für maschinelles Lernen oder ein erstmaliger Benutzer von Toolkits für maschinelles Lernen sind, sind hier einige Gründe, PYG für maschinelles Lernen in graphgestrukturierten Daten auszuprobieren.
- Einfach zu bedienende und einheitliche API : Alles, was es braucht, sind 10-20 Codezeilen, um mit dem Training eines GNN-Modells zu beginnen (siehe den nächsten Abschnitt für eine kurze Tour). Pyg ist Pytorch-on-the-Rocks : Es verwendet eine Tensor-zentrierte API und hält Designprinzipien in der Nähe von Vanille-Pytorch. Wenn Sie mit Pytorch bereits vertraut sind, ist die Verwendung von PYG unkompliziert.
- Umfassende und gut gepflegte GNN-Modelle : Die meisten der hochmodernen Grafikarchitekturen wurden von Bibliotheksentwicklern oder Autoren von Forschungsarbeiten implementiert und sind bereit für die Anwendung.
- Große Flexibilität : Bestehende PYG -Modelle können leicht für die Durchführung Ihrer eigenen Forschung mit GNNs erweitert werden. Änderungen an vorhandenen Modellen oder das Erstellen neuer Architekturen sind dank seiner benutzerfreundlichen Botschaft-API sowie einer Vielzahl von Betreibern und Versorgungsfunktionen einfach.
- Große GNN-Modelle in großem Maßstab : Wir konzentrieren uns auf die Notwendigkeit von GNN-Anwendungen in herausfordernden realen Szenarien und unterstützen das Lernen in verschiedenen Arten von Graphen, einschließlich, aber nicht beschränkt auf: skalierbare GNNs für Grafiken mit Millionen von Knoten; dynamische GNNs für Knotenvorhersagen im Laufe der Zeit; Heterogene GNNs mit mehreren Knotentypen und Kantentypen.
Schnelle Tour für neue Benutzer
In dieser schnellen Tour zeigen wir die einfache Erstellung und Schulung eines GNN -Modells mit nur wenigen Codezeilen.
Trainieren Sie Ihr eigenes GNN -Modell
Im ersten Blick auf PYG implementieren wir die Schulung eines GNN zur Klassifizierung von Arbeiten in einem Zitierdiagramm. Zu diesem Zweck laden wir den Cora-Datensatz und erstellen ein einfaches 2-layeres GCN-Modell mit dem vordefinierten GCNConv :
import torch
from torch import Tensor
from torch_geometric . nn import GCNConv
from torch_geometric . datasets import Planetoid
dataset = Planetoid ( root = '.' , name = 'Cora' )
class GCN ( torch . nn . Module ):
def __init__ ( self , in_channels , hidden_channels , out_channels ):
super (). __init__ ()
self . conv1 = GCNConv ( in_channels , hidden_channels )
self . conv2 = GCNConv ( hidden_channels , out_channels )
def forward ( self , x : Tensor , edge_index : Tensor ) -> Tensor :
# x: Node feature matrix of shape [num_nodes, in_channels]
# edge_index: Graph connectivity matrix of shape [2, num_edges]
x = self . conv1 ( x , edge_index ). relu ()
x = self . conv2 ( x , edge_index )
return x
model = GCN ( dataset . num_features , 16 , dataset . num_classes ) Wir können das Modell jetzt in einer Trainingsschleife optimieren, ähnlich wie beim Standard -Pytorch -Trainingsverfahren.
import torch . nn . functional as F
data = dataset [ 0 ]
optimizer = torch . optim . Adam ( model . parameters (), lr = 0.01 )
for epoch in range ( 200 ):
pred = model ( data . x , data . edge_index )
loss = F . cross_entropy ( pred [ data . train_mask ], data . y [ data . train_mask ])
# Backpropagation
optimizer . zero_grad ()
loss . backward ()
optimizer . step () Weitere Informationen zur Bewertung der endgültigen Modellleistung finden Sie im entsprechenden Beispiel.
Erstellen Sie Ihre eigene GNN -Ebene
Zusätzlich zur einfachen Anwendung vorhandener GNNs erleichtert PYG es einfach, benutzerdefinierte Grafiknetzwerke zu implementieren (siehe hier für das begleitende Tutorial). Dies ist beispielsweise alles, was nötig ist, um die Kantenfaltungsschicht von Wang et al. :
$$ x_i^{ prime} ~ = ~ max_ {j in mathcal {n} (i)} ~ textrm {mlp} _ { theta} links ([~ x_i, ~ x_j - x_i ~] rechts) $$) $$
import torch
from torch import Tensor
from torch . nn import Sequential , Linear , ReLU
from torch_geometric . nn import MessagePassing
class EdgeConv ( MessagePassing ):
def __init__ ( self , in_channels , out_channels ):
super (). __init__ ( aggr = "max" ) # "Max" aggregation.
self . mlp = Sequential (
Linear ( 2 * in_channels , out_channels ),
ReLU (),
Linear ( out_channels , out_channels ),
)
def forward ( self , x : Tensor , edge_index : Tensor ) -> Tensor :
# x: Node feature matrix of shape [num_nodes, in_channels]
# edge_index: Graph connectivity matrix of shape [2, num_edges]
return self . propagate ( edge_index , x = x ) # shape [num_nodes, out_channels]
def message ( self , x_j : Tensor , x_i : Tensor ) -> Tensor :
# x_j: Source node features of shape [num_edges, in_channels]
# x_i: Target node features of shape [num_edges, in_channels]
edge_features = torch . cat ([ x_i , x_j - x_i ], dim = - 1 )
return self . mlp ( edge_features ) # shape [num_edges, out_channels] Architekturübersicht
PYG bietet ein Multi-Layer-Framework, mit dem Benutzer neuronale Netzwerklösungen sowohl auf niedrigen als auch auf hohen Ebenen erstellen können. Es umfasst die folgenden Komponenten:
- Die PYG- Engine nutzt das leistungsstarke Pytorch Deep Learning-Framework mit Full
torch.compile und Torchscript-Unterstützung sowie Ergänzungen effizienter CPU/CUDA-Bibliotheken für den Betrieb mit sparsamen Daten, z . B. pyg-lib . - Der PYG -Speicher behandelt die Datenverarbeitung, Transformation und das Laden von Pipelines. Es ist in der Lage, groß angelegte Diagrammdatensätze zu handhaben und zu verarbeiten, und bietet effektive Lösungen für heterogene Graphen. Es bietet ferner eine Vielzahl von Stichprobenlösungen, die die Schulung von GNNs in großflächigen Diagrammen ermöglichen.
- Die PYG -Operatoren bündeln wesentliche Funktionen für die Implementierung von Grafiknetzwerken. PYG unterstützt wichtige GNN -Bausteine, die kombiniert und auf verschiedene Teile eines GNN -Modells angewendet werden können, um eine umfangreiche Flexibilität des GNN -Designs zu gewährleisten.
- Schließlich bietet PYG eine Menge GNN -Modelle und Beispiele, die GNN -Modelle auf Standard -Graph -Benchmarks zeigen. Dank seiner Flexibilität können Benutzer benutzerdefinierte GNN -Modelle problemlos erstellen und ändern, um ihren spezifischen Anforderungen zu entsprechen.
Implementierte GNN -Modelle
Wir haben derzeit PYG -Modelle, Ebenen und Betreiber gemäß der Kategorie aufgelistet:
GNN -Ebenen: Alle neuronalen Netzwerkschichten von Grafiken werden über die nn.MessagePassing -Schnittstelle implementiert. Eine GNN -Ebene gibt an, wie das Passieren von Nachrichten durchgeführt wird, dh durch Entwerfen verschiedener Nachrichten-, Aggregations- und Aktualisierungsfunktionen wie hier definiert. Diese GNN -Ebenen können zusammengestapelt werden, um Grafikmodelle für neuronale Netzwerke zu erstellen.
- GCNConv von KiPf und Welling: Semi-überprüfte Klassifizierung mit Graph-Faltungsnetzwerken (ICLR 2017) [ Beispiel ]
- Chebconv von Defferrard et al. : Faltungsnetzwerke in Graphen mit schnell lokalisierten Spektralfilterung (NIPS 2016) [ Beispiel ]
- Gatconv von Veličković et al. : Graph Achtungsnetzwerke (ICLR 2018) [ Beispiel ]
Erweitern Sie, um alle implementierten GNN -Schichten zu sehen ...
- GCN2CONV von Chen et al. : Einfache und tiefe Graph -Faltungsnetzwerke (ICML 2020) [ Beispiel1 , Beispiel2 ]
- SplineConv von Fey et al. : Splinecnn: Schnelles geometrisches Deep-Lernen mit kontinuierlichen B-Spline-Kerneln (CVPR 2018) [ Beispiel1 , Beispiel2 ]
- NNCONV von Gilmer et al. : Neuronale Nachricht, die für die Quantenchemie bestehen (ICML 2017) [ Beispiel1 , Beispiel2 ]
- CGCONV von Xie und Grossman: Crystal Graph Faltungsnetzwerke für eine genaue und interpretierbare Vorhersage von Materialeigenschaften (Physical Review Letters 120, 2018)
- ECCONV von Simonovsky und Komodakis: Randkonditionierte Faltung in Graphen (CVPR 2017)
- EGCONV von Tailor et al. : Adaptive Filter und Aggregator -Fusion für effiziente Graphen -Konvolutionen (GNNSYS 2021) [ Beispiel ]
- GATV2CONV von Brody et al. : Wie aufmerksam sind Grafik -Aufmerksamkeitsnetzwerke? (ICLR 2022)
- Transformerconv von Shi et al. : Maskierte Etikett-Vorhersage: Einheitliches Nachrichtenübertragungsmodell für die halbübergreifende Klassifizierung (Corr 2020) [ Beispiel ]
- SAGECONV von Hamilton et al. : Induktives Repräsentationslernen in großen Graphen (NIPS 2017) [ Beispiel1 , Beispiel2 , Beispiel3 , Beispiel4 ]
- Graphconv von, z . B. Morris et al. : WISFEILER und LEMAN GO NEURAL: Grafische Netzwerke höherer Ordnung (AAAI 2019)
- Gatedgraphconv von Li et al. : Gated Graph Sequence Neural Networks (ICLR 2016)
- Resgatedgraphconv von Bresson und Laurent: Residual Gated Graph Convnets (Corr 2017)
- Ginconv von Xu et al. : Wie mächtig sind Grafik neuronale Netze? (ICLR 2019) [ Beispiel ]
- Gineconv von Hu et al. : Strategien für neuronale Netzwerke vor dem Training (ICLR 2020)
- Armaconv von Bianchi et al. : Graph Neural Networks mit Faltungsarmfiltern (Corr 2019) [ Beispiel ]
- SGCONV von Wu et al. : Vereinfachung von Graph Faltungsnetzwerken (Corr 2019) [ Beispiel ]
- Appnp von Klicpera et al. : Vorhersage dann Propagate: Graph Neural Networks treffen personalisierte PageRank (ICLR 2019) [ Beispiel ]
- MFConv von Duvenaud et al. : Faltungsnetzwerke für Grafiken zum Lernen molekularer Fingerabdrücke (NIPS 2015)
- Agnnconv von TheKumparampil et al. : Aufmerksamkeitsbasiertes Diagramm Neuronales Netzwerk für semi-vortrimiertes Lernen (Corr 2017) [ Beispiel ]
- TagConv von Du et al. : Topology Adaptive Graph Faltungsnetzwerke (Corr 2017) [ Beispiel ]
- Pnaconv von Corso et al. : Hauptviertelaggregation für Graph Nets (Corr 2020) [ Beispiel ]
- Faconv von Bo et al. : Beyond Niederfrequenzinformationen in Graph-Faltungsnetzwerken (AAAI 2021)
- Pdnconv von Rozemberczki et al. : Pathfinder Discovery -Netzwerke für die Passierung neuronaler Nachricht (www 2021)
- Rgcnconv von schlichtkrull et al. : Modellierung relationaler Daten mit Graph -Faltungsnetzwerken (ESWC 2018) [ Beispiel1 , Beispiel2 ]
- Rgatconv von Busbridge et al. : Relationale Grafik -Aufmerksamkeitsnetzwerke (Corr 2019) [ Beispiel ]
- Filmconv von Brockschmidt: GNN-Film: Graph Neural Networks mit linearer Merkmalsmodulation (ICML 2020) [ Beispiel ]
- SignedConv von Derr et al. : Signiertes Graph -Faltungsnetzwerk (ICDM 2018) [ Beispiel ]
- DNACONV von FEY: Just Sprung: Dynamische Nachbarschaft Aggregation in Graph Neural Networks (ICLR-W 2019) [ Beispiel ]
- Panconv von Ma et al. : Path -Integral -basierte Faltung und Pooling für Diagramm -neuronale Netze (Neurips 2020)
- PointNetConv (einschließlich der am weitesten entfernten Punkte , dynamische Diagrammerzeugung, basierend auf dem nächsten Nachbarn oder der maximalen Entfernung und der K-NN-Interpolation für Upsampling) von Qi et al. : Pointnet: Deep Learning On Point Sets für 3D -Klassifizierung und -Segmentierung (CVPR 2017) und PointNet ++: Deep hierarchisches Feature -Lernen auf Punktmengen in einem metrischen Raum (NIPS 2017) [ Beispiel1 , Beispiel2 ]
- EdgeConv von Wang et al. : Dynamisches Graph CNN zum Lernen auf Punktwolken (Corr, 2018) [ Beispiel1 , Beispiel2 ]
- Xconv von Li et al. : Pointcnn: Faltung auf X-transformierten Punkten (Neurips 2018) [ Beispiel ]
- PPFConv von Deng et al. : Ppfnet: Globaler Kontext bewusste lokale Funktionen für eine robuste 3D -Punkt -Matching (CVPR 2018)
- GMMConv von Monti et al. : Geometrisches Deep -Lernen auf Diagrammen und Verteilern unter Verwendung von Mischmodell -CNNs (CVPR 2017)
- Feastconv von Verma et al. : Feastnet: Features-getestete Graphen-Konvolutionen für die 3D-Formanalyse (CVPR 2018)
- Pointtransformerconv von Zhao et al. : Punkttransformator (2020)
- Hypergraphconv von Bai et al. : Hypergraph Faltung und Hypergraph -Aufmerksamkeit (Corr 2019)
- Gravnetconv von Qasim et al. : Lernrepräsentationen der unregelmäßigen Partikel-Detektor-Geometrie mit fernengewichteten Graphennetzwerken (European Physics Journal C, 2019)
- Supergat von Kim und OH: So finden Sie Ihre freundliche Nachbarschaft: Diagramm-Aufmerksamkeitsdesign mit Selbst-Supervision (ICLR 2021) [ Beispiel ]
- Hgtconv von Hu et al. : Heterogener Graphtransformator (www 2020) [ Beispiel ]
- Heatconv von Mo et al. : Heterogenes kandidiertes Diagramm-Aufmerksamkeitsnetzwerk für die Multi-Agent-Trajektorienvorhersage (Corr 2021)
- SSGCONV von Zhu et al. : Einfache Spektralgraphenverarbeitung (ICLR 2021)
- Fusedgatconv von Zhang et al. : Verständnis der GNN -Rechendiagramme: Eine koordinierte Berechnung, IO und Speicherperspektive (MLSYS 2022)
- GPSCONV von Rampášek et al. : Rezept für einen allgemeinen, leistungsstarken, skalierbaren Graphtransformator (Neurips 2022) [ Beispiel ]
Pooling -Schichten: Graph Pooling -Schichten kombinieren die vektoriellen Darstellungen eines Satzes von Knoten in einem Diagramm (oder einem Untergraphen) in eine einzelne Vektordarstellung, die seine Eigenschaften von Knoten zusammenfasst. Es wird üblicherweise auf Aufgaben auf Diagrammniveau angewendet, bei denen Knotenmerkmale zu einer einzelnen Diagrammdarstellung kombiniert werden müssen.
- Top-K-Pooling von GAO und JI: Graph U-Nets (ICML 2019), Canna et al. : Auf dem Weg zu spärlichen hierarchischen Graph-Klassifizierern (Neurips-W 2018) und Knyazev et al. : Aufmerksamkeit und Verallgemeinerung in Graph Neural Networks verstehen (ICLR-W 2019) [ Beispiel ]
- Diffpool von Ying et al. : Hierarchische Grafikrepräsentation Lernen mit differenzierbarem Pooling (Neurips 2018) [ Beispiel ]
Erweitern Sie, um alle implementierten Pooling -Schichten zu sehen ...
- Aufmerksamkeitsaggregation von Li et al. : Graph -Matching -Netzwerke zum Erlernen der Ähnlichkeit von strukturierten grafischen Objekten (ICML 2019) [ Beispiel ]
- Set2Set von Vinyals et al. : Order Matters: Sequenz zur Sequenz für Sets (ICLR 2016) [ Beispiel ]
- Sortieren Sie die Aggregation von Zhang et al. : Eine End-to-End-Deep-Lern-Architektur für die Grafikklassifizierung (AAAI 2018) [ Beispiel ]
- Mincut Pooling von Bianchi et al. : Spectral Clustering mit Grafik Neuronalen Netzwerken für das Graph Pooling (ICML 2020) [ Beispiel ]
- Dmon -Pooling von Tsitsulin et al. : Graph -Clustering mit Grafik Neuronale Netze (Corr 2020) [ Beispiel ]
- GRACLUS POOLING VON DHILLON ET AL. : Gewichtete Graphenschnitte ohne Eigenvektoren: ein mehrstufiger Ansatz (Pami 2007) [ Beispiel ]
- Voxel Grid Pooling von , z .
- SAGing Pooling von Lee et al. : Selbstbekämpfungspooling (ICML 2019) und Knyazev et al. : Aufmerksamkeit und Verallgemeinerung in Graph Neural Networks verstehen (ICLR-W 2019) [ Beispiel ]
- Randpooling von Diehl et al. : In Richtung Graph Pooling nach Edgekontraktion (ICML-W 2019) und Diehl: Edge-Kontraktionspooling für Grafik Neuronale Netze (Corr 2019) [ Beispiel ]
- ASAPOOLING von Ranjan et al. : ASAP: Adaptive Struktur Awesare Pooling für Lerndarstellungen hierarchische Graphen (AAAI 2020) [ Beispiel ]
- Panpooling von Ma et al. : Path -Integral -basierte Faltung und Pooling für Diagramm -neuronale Netze (Neurips 2020)
- Mempooling von Khasahmadi et al. : Speicherbasierte Graph-Netzwerke (ICLR 2020) [ Beispiel ]
- Graph Multiset -Transformator von Baek et al. : Genaues Lernen von Graphendarstellungen mit Graph Multiset Pooling (ICLR 2021) [ Beispiel ]
- Gleichgewichtsaggregation von Bartunov et al. : (Uai 2022) [ Beispiel ]
GNN-Modelle: Unsere unterstützten GNN-Modelle enthalten mehrere Nachrichtenübergabeschichten, und Benutzer können diese vordefinierten Modelle direkt verwenden, um Vorhersagen in Diagramme zu treffen. Im Gegensatz zum einfachen Stapeln von GNN-Schichten könnten diese Modelle eine Vorverarbeitung, zusätzliche lernbare Parameter, Überspringen von Verbindungen, Graphenstimmeln usw. beinhalten.
- SCHNET von Schütt et al. : SCHNET: Ein kontinuierliches Filter-Faltungsnetz für die Modellierung von Quanteninteraktionen (NIPS 2017) [ Beispiel ]
- Dimenet und Dimenetplusplus von Klicpera et al. : Richtungsnachricht, die für molekulare Graphen (ICLR 2020) und eine schnelle und unsicherheitsbewusste Richtungsnachricht für Nicht-Gleichgewichtsmoleküle (Neurip-W 2020) Passieren [ Beispiel ]
- NODE2VEC von Grover und Leskovec: Node2VEC: Skalierbares Feature -Lernen für Netzwerke (KDD 2016) [ Beispiel ]
- Tiefe Graph Infomax von Veličković et al. : Deep Graph Infomax (ICLR 2019) [ Beispiel1 , Beispiel2 ]
- Deep Multiplex Graph Infomax von Park et al. : Unbeaufsichtigte zugeordnete Multiplex -Netzwerkeinbettung (AAAI 2020) [ Beispiel ]
- Maskierte Etikett -Vorhersage von Shi et al. : Maskierte Etikett-Vorhersage: Einheitliches Nachrichtenübertragungsmodell für die halbübergreifende Klassifizierung (Corr 2020) [ Beispiel ]
- PMLP von Yang et al. : Graph Neural Networks sind von Natur aus gute Verallgemeineren: Erkenntnisse durch Überbrückung von GNNs und MLPs (ICLR 2023)
Erweitern Sie, um alle implementierten GNN -Modelle zu sehen ...
- Springen Wissen von Xu et al. : Repräsentationslernen in Diagrammen mit Sprungkenntnisnetzwerken (ICML 2018) [ Beispiel ]
- Ein Metallschicht zum Erstellen von Graph -Netzwerk, ähnlich der TensorFlow -Graph -NETS -Bibliothek von Battaglia et al. : Relationale induktive Vorurteile, tiefes Lernen und Grafiknetzwerke (Corr 2018)
- Metapath2Vec von Dong et al. : metapath2Vec: Skalierbares Repräsentationslernen für heterogene Netzwerke (KDD 2017) [ Beispiel ]
- Alle Varianten von Graph -Autoencodern und Variations -Autocoder aus:
- Variationsgraphen Auto-Coder aus Kipf und Welling (NIPS-W 2016) [ Beispiel ]
- Gegenteilig reguliertes Graph -Autocoder für die Einbettung von Pan et al. (IJCAI 2018) [ Beispiel ]
- Einfache und effektive Grafik-Autoencoder mit linearen One-Hop-Modellen von Salha et al. (ECML 2020) [ Beispiel ]
- Siegel aus Zhang und Chen: Linkvorhersage basierend auf Grafik Neuronalen Netzwerken (Neurips 2018) [ Beispiel ]
- Renet von Jin et al. : Wiederkehrendes Ereignisnetzwerk für die Argumentation über zeitliche Wissensgraphen (ICLR-W 2019) [ Beispiel ]
- Graphunet von GAO und JI: Graph U-Nets (ICML 2019) [ Beispiel ]
- AttentiveFP von Xiong et al. : Schieben Sie die Grenzen der molekularen Darstellung für die Arzneimittelentdeckung mit dem Aufmerksamkeitsmechanismus der Grafik (J. Med. Chem. 2020) [ Beispiel ]
- Deepgcn und der Genconv von Li et al. : Deepgcns: Können GCNs so tief wie CNNs gehen? (ICCV 2019) und Deepergcn: Alles, was Sie brauchen, um tiefere GCNs zu trainieren (Corr 2020) [ Beispiel ]
- Recht von Wang et al. : Netzwerkeinbettung mit vollständig erbalten Etiketten (TKDE 2020) [ Beispiel ]
- Gnnexplainer von Ying et al. : Gnnexplainer: Erklärungen für Grafik Neuronale Netze (Neurips 2019) [ Beispiel1 , Beispiel2 , Beispiel3 ]
- Grafiklose neuronale Netze von Zhang et al. : Grafiklose neuronale Netze: Alte MLPs neue Tricks über Destillation unterrichten (Corr 2021) [ Beispiel ]
- Linkx von Lim et al. : Großes Lernen in nicht-homophilen Graphen: Neue Benchmarks und starke einfache Methoden (Neurips 2021) [ Beispiel ]
- Revgnn von Li et al. : Trainingsgrafik Neural mit 1000 Schichten (ICML 2021) [ Beispiel ]
- Transe von Bordes et al. : Übersetzen von Einbettungen zur Modellierung mehrerer Relationsdaten (NIPS 2013) [ Beispiel ]
- Komplex von Trousillon et al. : Komplexe Einbettungen für die einfache Link -Vorhersage (ICML 2016) [ Beispiel ]
- Distmult von Yang et al. : Einbettungsunternehmen und Beziehungen zum Lernen und Inferenz in Wissensbasis (ICLR 2015) [ Beispiel ]
- Drehen Sie sich von Sun et al. : Drehen: Knowledge Graph Einbettung durch relationale Rotation im komplexen Raum (ICLR 2019) [ Beispiel ]
GNN -Betreiber und -Verleistungen: PYG verfügt über eine Reihe von neuronalen Netzbetreibern, die in vielen GNN -Modellen üblicherweise verwendet werden. Sie folgen einem erweiterbaren Design: Es ist einfach, diese Bediener und Grafik -Dienstprogramme auf vorhandene GNN -Ebenen und -modelle anzuwenden, um die Modellleistung weiter zu verbessern.
- Dropged von Rong et al. : DropEdge: In Richtung Deep Graph Faltungsnetzwerke zur Klassifizierung der Knoten (ICLR 2020)
- Dropnode , Maskfeature und Addrandomedge von Ihnen et al. : Graph Kontrastives Lernen mit Augmentationen (Neurips 2020)
- DropPath von Li et al. : Maskgae: Die maskierte Graph -Modellierung erfüllt Graph AutoCoders (ARXIV 2022)
- SHUFFlenode von Veličković et al. : Deep Graph Infomax (ICLR 2019)
- GraphNorm von Cai et al. : GraphNorm: Ein prinzipieller Ansatz zur Beschleunigung des neuronalen Netzwerks von Graphen (ICML 2021)
- GDC von Klicpera et al. : Diffusion verbessert das Lernen von Graphen (Neurips 2019) [ Beispiel ]
Erweitern Sie, um alle implementierten GNN -Betreiber und -versorgungsunternehmen zu sehen ...
- Graphsizenorm von Dwivedi et al. : Benchmarking Graph Neural Networks (Corr 2020)
- Paarnorm von Zhao und Akoglu: Pairnorm: Überflüsse in GNNs (ICLR 2020)
- MeansuBractionNorm von Yang et al. : "Überschwemmung" in tiefen GCNs (Corr 2020) erneut besuchen (Corr 2020)
- DiffGroupnorm von Zhou et al. : In Richtung tieferer Grafik -Neuralnetzwerke mit differenzierbarer Gruppennormalisierung (Neurips 2020)
- Baumzersetzung von Jin et al. : Junction Tree Variational AutoCoder für die Erzeugung der molekularen Grafik (ICML 2018)
- TGN von Rossi et al. : Temporale Graph -Netzwerke für Deep -Lernen in dynamischen Graphen (GRL+ 2020) [ Beispiel ]
- WISFELER Lehman-Betreiber von Weisfeiler und Lehman: Eine Reduzierung einer Grafik auf eine kanonische Form und eine Algebra, die während dieser Reduzierung auftritt (Nauchno-Technicheskaya Informatsia 1968) [ Beispiel ]
- Kontinuierlicher WISFELER Lehman -Operator von Togninalli et al. : Wasserstein WISFEILER-LEHAN GRAFEL KEBENEL (NEURIPS 2019)
- Etikettenausbreitung von Zhu und Ghahramani: Lernen aus beschrifteten und unmarkierten Daten mit der Beschriftungsausbreitung (CMU-CALD 2002) [ Beispiel ]
- Lokales Studienprofil von CAI und Wang: Eine einfache und dennoch effektive Basis für die Klassifizierung der Nicht-Attribut-Graphen (COR 2018)
- Correpandsmooth von Huang et al. : Kombinieren Sie die Etikettenausbreitung und einfache Modelle über die Grafiknetzwerke (Corr 2020) [ Beispiel ]
- Gini und Bro Regularisierung von Henderson et al. : Verbesserung der Erklärung der molekularen Graphen neuronaler Netzwerk mit Orthonormalisierung und induzierter Sparsamkeit (ICML 2021)
- Verwurzelte und verwurzelte Runde von Zhao et al. : Von Sternen zu Untergraphen: Aufmesser jedes GNN mit lokalem Strukturbewusstsein (ICLR 2022)
- FeaturePropagation von Rossi et al. : Über die unangemessene Effektivität der Merkmalsausbreitung beim Lernen in Diagrammen mit fehlenden Knotenmerkmalen (Corr 2021)
Skalierbares GNNS: PYG unterstützt die Implementierung von Grafiknetzwerken, die auf groß angelegte Graphen skalieren können. Eine solche Anwendung ist eine Herausforderung, da das gesamte Diagramm, die zugehörigen Funktionen und die GNN -Parameter nicht in den GPU -Speicher passen. Viele hochmoderne Skalierbarkeitsansätze stellen diese Herausforderung an, indem sie Nachbarschaften für das Mini-Batch-Training, das Diagramm-Clustering und die Partitionierung oder die Verwendung vereinfachter GNN-Modelle probieren. Diese Ansätze wurden in PYG implementiert und können von den oben genannten GNN -Schichten, Betreibern und Modellen profitieren.
- Nachbarlader von Hamilton et al. : Induktives Repräsentationslernen in großen Graphen (NIPS 2017) [ Beispiel1 , Beispiel2 , Beispiel3 ]
- Clustergcn von Chiang et al. : Cluster-GCN: Ein effizienter Algorithmus für die Schulung von Tiefen- und großen Graphen-Faltungsnetzen (KDD 2019) [ Beispiel1 , Beispiel2 ]
- Graphsaint von Zeng et al. : GraphSaint: Graph -Stichprobenbasis induktiver Lernmethode (ICLR 2020) [ Beispiel ]
Erweitern Sie, um alle implementierten skalierbaren GNNs zu sehen ...
- Schatten von Zeng et al. : Entkoppelung der Tiefe und des Umfangs von drapischen neuronalen Netzwerken (Neurips 2021) [ Beispiel ]
- Zeichen von Rossi et al. : Zeichen: Skalierbares Inception -Graph Neuronale Netze (Corr 2020) [ Beispiel ]
- Hgtader von Hu et al. : Heterogener Graphtransformator (www 2020) [ Beispiel ]
Installation
PYG ist für Python 3.9 bis Python 3.12 erhältlich.
Anakonda
Sie können jetzt PYG über Anaconda für alle großen OS/Pytorch/CUDA -Kombinationen installieren? Wenn Sie PyTorch noch nicht installiert haben, installieren Sie es über conda wie in der offiziellen Pytorch -Dokumentation beschrieben. Da Sie Pytorch installiert haben ( >=1.8.0 ), laufen Sie einfach aus
Pypi
Ab PYG 2.3 können Sie PYG ohne eine externe Bibliothek mit Ausnahme von PyTorch installieren und verwenden. Dafür einfach rennen
pip install torch_geometric
Zusätzliche Bibliotheken
Wenn Sie die vollständigen Funktionen von PYG verwenden möchten, gibt es mehrere zusätzliche Bibliotheken, die Sie möglicherweise installieren möchten:
-
pyg-lib : Heterogene GNN-Operatoren und Diagrammabtastroutinen -
torch-scatter : Beschleunigte und effiziente spärliche Reduzierungen -
torch-sparse : SparseTensor -Unterstützung -
torch-cluster : Graph-Clustering-Routinen -
torch-spline-conv : SplineConv Unterstützung
Diese Pakete sind mit ihren eigenen CPU- und GPU -Kernel -Implementierungen ausgestattet, basierend auf der ROCM -Erweiterungsschnittstelle von Pytorch C ++/CUDA/HIP (ROCM). Für eine grundlegende Verwendung von PYG sind diese Abhängigkeiten vollständig optional . Wir empfehlen, mit einer minimalen Installation zu beginnen und zusätzliche Abhängigkeiten zu installieren, sobald Sie sie tatsächlich benötigen.
Zur einfachen Installation dieser Erweiterungen stellen wir pip -Räder für alle wichtigen OS/Pytorch/CUDA -Kombinationen zur Verfügung, siehe hier.
Pytorch 2.5
Um die Binärdateien für Pytorch 2.5.0 zu installieren, laufen Sie einfach aus
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
wobei ${CUDA} je nach cpu , cu118 , cu121 oder cu124 abhängig von Ihrer Pytorch -Installation ersetzt werden sollte.
| cpu | cu118 | cu121 | cu124 |
|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Fenster | ✅ | ✅ | ✅ | ✅ |
| macos | ✅ | | | |
Pytorch 2.4
Um die Binärdateien für Pytorch 2.4.0 zu installieren, laufen Sie einfach aus
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
wobei ${CUDA} je nach cpu , cu118 , cu121 oder cu124 abhängig von Ihrer Pytorch -Installation ersetzt werden sollte.
| cpu | cu118 | cu121 | cu124 |
|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Fenster | ✅ | ✅ | ✅ | ✅ |
| macos | ✅ | | | |
HINWEIS: Binaries älterer Versionen werden auch für Pytorch 1.4.0, Pytorch 1.5.0, Pytorch 1.6.0, Pytorch 1.7.0/1.7.1, Pytorch 1.8.0/1.8.1, Pytorch 1.9.0, Pytorch 1.10/1.10/1.10, 1,10/1.10, 1,10/1.10/1.10.2, Pytorch 1.10/1.10/1.10.2, Pytorch 1.10/1.10/1.10.2, bereitgestellt. 1.12.0/1.12.1, Pytorch 1.13.0/1.13.1, Pytorch 2.0.0/2.0.1, Pytorch 2.1.0/2.1.1/2.1.2, Pytorch 2.2.0/2.2.1/2.2.2 und Pytorch 2.3.0/2.3.1 (nach dem gleichen Verfahren). Für ältere Versionen müssen Sie möglicherweise explizit die neueste unterstützte Versionsnummer oder die Installation über pip install --no-index angeben, um eine manuelle Installation aus der Quelle zu verhindern. Hier können Sie die neueste unterstützte Versionsnummer nachschlagen.
Nvidia Pyg Container
NVIDIA bietet einen Pyg -Docker -Container für mühelos Training und Bereitstellung von GPU -beschleunigten GNNs mit PYG, siehe hier.
Nacht und Meister
Wenn Sie mit den neuesten PYG -Funktionen experimentieren möchten, die noch nicht vollständig veröffentlicht sind, installieren Sie entweder die nächtliche Version von PYG über
oder pyg vom Master durch installieren
pip install git+https://github.com/pyg-team/pytorch_geometric.git
Rocm Räder
Das externe pyg-rocm-build Repository enthält Räder und detaillierte Anweisungen zur Installation von PYG für ROCM. Wenn Sie Fragen dazu haben, öffnen Sie hier bitte ein Problem.
Zitieren
Bitte zitieren Sie unser Papier (und die jeweiligen Artikel der verwendeten Methoden), wenn Sie diesen Code in Ihrer eigenen Arbeit verwenden:
@inproceedings{Fey/Lenssen/2019,
title={Fast Graph Representation Learning with {PyTorch Geometric}},
author={Fey, Matthias and Lenssen, Jan E.},
booktitle={ICLR Workshop on Representation Learning on Graphs and Manifolds},
year={2019},
}
Senden Sie uns gerne eine E -Mail, wenn Sie möchten, dass Ihre Arbeit in den externen Ressourcen aufgeführt ist. Wenn Sie etwas Unerwartetes bemerken, öffnen Sie bitte ein Problem und lassen Sie es uns wissen. Wenn Sie Fragen haben oder eine bestimmte Funktion fehlen, können Sie sie gerne mit uns besprechen. Wir sind motiviert, PYG ständig noch besser zu machen.