- Notifications
You must be signed in to change notification settings - Fork3.9k
Graph Neural Network Library for PyTorch
License
pyg-team/pytorch_geometric
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
PyG(PyTorch Geometric) is a library built uponPyTorch to easily write and train Graph Neural Networks (GNNs) for a wide range of applications related to structured data.
It consists of various methods for deep learning on graphs and other irregular structures, also known asgeometric deep learning, from a variety of published papers.In addition, it consists of easy-to-use mini-batch loaders for operating on many small and single giant graphs,multi GPU-support,torch.compile support,DataPipe support, a large number of common benchmark datasets (based on simple interfaces to create your own), and helpful transforms, both for learning on arbitrary graphs as well as on 3D meshes or point clouds.
Click here to join our Slack community!
Whether you are a machine learning researcher or first-time user of machine learning toolkits, here are some reasons to try out PyG for machine learning on graph-structured data.
- Easy-to-use and unified API:All it takes is 10-20 lines of code to get started with training a GNN model (see the next section for aquick tour).PyG isPyTorch-on-the-rocks: It utilizes a tensor-centric API and keeps design principles close to vanilla PyTorch.If you are already familiar with PyTorch, utilizing PyG is straightforward.
- Comprehensive and well-maintained GNN models:Most of the state-of-the-art Graph Neural Network architectures have been implemented by library developers or authors of research papers and are ready to be applied.
- Great flexibility:Existing PyG models can easily be extended for conducting your own research with GNNs.Making modifications to existing models or creating new architectures is simple, thanks to its easy-to-use message passing API, and a variety of operators and utility functions.
- Large-scale real-world GNN models:We focus on the need of GNN applications in challenging real-world scenarios, and support learning on diverse types of graphs, including but not limited to: scalable GNNs for graphs with millions of nodes; dynamic GNNs for node predictions over time; heterogeneous GNNs with multiple node types and edge types.
In this quick tour, we highlight the ease of creating and training a GNN model with only a few lines of code.
In the first glimpse of PyG, we implement the training of a GNN for classifying papers in a citation graph.For this, we load theCora dataset, and create a simple 2-layer GCN model using the pre-definedGCNConv:
importtorchfromtorchimportTensorfromtorch_geometric.nnimportGCNConvfromtorch_geometric.datasetsimportPlanetoiddataset=Planetoid(root='.',name='Cora')classGCN(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)defforward(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)returnxmodel=GCN(dataset.num_features,16,dataset.num_classes)
We can now optimize the model in a training loop, similar to thestandard PyTorch training procedure.
importtorch.nn.functionalasFdata=dataset[0]optimizer=torch.optim.Adam(model.parameters(),lr=0.01)forepochinrange(200):pred=model(data.x,data.edge_index)loss=F.cross_entropy(pred[data.train_mask],data.y[data.train_mask])# Backpropagationoptimizer.zero_grad()loss.backward()optimizer.step()
More information about evaluating final model performance can be found in the correspondingexample.
In addition to the easy application of existing GNNs, PyG makes it simple to implement custom Graph Neural Networks (seehere for the accompanying tutorial).For example, this is all it takes to implement theedge convolutional layer from Wanget al.:
importtorchfromtorchimportTensorfromtorch.nnimportSequential,Linear,ReLUfromtorch_geometric.nnimportMessagePassingclassEdgeConv(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), )defforward(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]returnself.propagate(edge_index,x=x)# shape [num_nodes, out_channels]defmessage(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)returnself.mlp(edge_features)# shape [num_edges, out_channels]
PyG provides a multi-layer framework that enables users to build Graph Neural Network solutions on both low and high levels.It comprises of the following components:
- The PyGengine utilizes the powerful PyTorch deep learning framework with full
torch.compileandTorchScript support, as well as additions of efficient CPU/CUDA libraries for operating on sparse data,e.g.,pyg-lib. - The PyGstorage handles data processing, transformation and loading pipelines. It is capable of handling and processing large-scale graph datasets, and provides effective solutions for heterogeneous graphs. It further provides a variety of sampling solutions, which enable training of GNNs on large-scale graphs.
- The PyGoperators bundle essential functionalities for implementing Graph Neural Networks. PyG supports important GNN building blocks that can be combined and applied to various parts of a GNN model, ensuring rich flexibility of GNN design.
- Finally, PyG provides an abundant set of GNNmodels, and examples that showcase GNN models on standard graph benchmarks. Thanks to its flexibility, users can easily build and modify custom GNN models to fit their specific needs.
We list currently supported PyG models, layers and operators according to category:
GNN layers:All Graph Neural Network layers are implemented via thenn.MessagePassing interface.A GNN layer specifies how to perform message passing,i.e. by designing different message, aggregation and update functions as definedhere.These GNN layers can be stacked together to create Graph Neural Network models.
- GCNConv from Kipf and Welling:Semi-Supervised Classification with Graph Convolutional Networks (ICLR 2017) [Example]
- ChebConv from Defferrardet al.:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering (NIPS 2016) [Example]
- GATConv from Veličkovićet al.:Graph Attention Networks (ICLR 2018) [Example]
Expand to see all implemented GNN layers...
- GCN2Conv from Chenet al.:Simple and Deep Graph Convolutional Networks (ICML 2020) [Example1,Example2]
- SplineConv from Feyet al.:SplineCNN: Fast Geometric Deep Learning with Continuous B-Spline Kernels (CVPR 2018) [Example1,Example2]
- NNConv from Gilmeret al.:Neural Message Passing for Quantum Chemistry (ICML 2017) [Example1,Example2]
- CGConv from Xie and Grossman:Crystal Graph Convolutional Neural Networks for an Accurate and Interpretable Prediction of Material Properties (Physical Review Letters 120, 2018)
- ECConv from Simonovsky and Komodakis:Edge-Conditioned Convolution on Graphs (CVPR 2017)
- EGConv from Tailoret al.:Adaptive Filters and Aggregator Fusion for Efficient Graph Convolutions (GNNSys 2021) [Example]
- GATv2Conv from Brodyet al.:How Attentive are Graph Attention Networks? (ICLR 2022)
- TransformerConv from Shiet al.:Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification (CoRR 2020) [Example]
- SAGEConv from Hamiltonet al.:Inductive Representation Learning on Large Graphs (NIPS 2017) [Example1,Example2,Example3,Example4]
- GraphConv from,e.g., Morriset al.:Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks (AAAI 2019)
- GatedGraphConv from Liet al.:Gated Graph Sequence Neural Networks (ICLR 2016)
- ResGatedGraphConv from Bresson and Laurent:Residual Gated Graph ConvNets (CoRR 2017)
- GINConv from Xuet al.:How Powerful are Graph Neural Networks? (ICLR 2019) [Example]
- GINEConv from Huet al.:Strategies for Pre-training Graph Neural Networks (ICLR 2020)
- ARMAConv from Bianchiet al.:Graph Neural Networks with Convolutional ARMA Filters (CoRR 2019) [Example]
- SGConv from Wuet al.:Simplifying Graph Convolutional Networks (CoRR 2019) [Example]
- APPNP from Klicperaet al.:Predict then Propagate: Graph Neural Networks meet Personalized PageRank (ICLR 2019) [Example]
- MFConv from Duvenaudet al.:Convolutional Networks on Graphs for Learning Molecular Fingerprints (NIPS 2015)
- AGNNConv from Thekumparampilet al.:Attention-based Graph Neural Network for Semi-Supervised Learning (CoRR 2017) [Example]
- TAGConv from Duet al.:Topology Adaptive Graph Convolutional Networks (CoRR 2017) [Example]
- PNAConv from Corsoet al.:Principal Neighbourhood Aggregation for Graph Nets (CoRR 2020) [Example]
- FAConv from Boet al.:Beyond Low-Frequency Information in Graph Convolutional Networks (AAAI 2021)
- PDNConv from Rozemberczkiet al.:Pathfinder Discovery Networks for Neural Message Passing (WWW 2021)
- RGCNConv from Schlichtkrullet al.:Modeling Relational Data with Graph Convolutional Networks (ESWC 2018) [Example1,Example2]
- RGATConv from Busbridgeet al.:Relational Graph Attention Networks (CoRR 2019) [Example]
- FiLMConv from Brockschmidt:GNN-FiLM: Graph Neural Networks with Feature-wise Linear Modulation (ICML 2020) [Example]
- SignedConv from Derret al.:Signed Graph Convolutional Network (ICDM 2018) [Example]
- DNAConv from Fey:Just Jump: Dynamic Neighborhood Aggregation in Graph Neural Networks (ICLR-W 2019) [Example]
- PANConv from Maet al.:Path Integral Based Convolution and Pooling for Graph Neural Networks (NeurIPS 2020)
- PointNetConv (includingIterative Farthest Point Sampling, dynamic graph generation based onnearest neighbor ormaximum distance, andk-NN interpolation for upsampling) from Qiet al.:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation (CVPR 2017) andPointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space (NIPS 2017) [Example1,Example2]
- EdgeConv from Wanget al.:Dynamic Graph CNN for Learning on Point Clouds (CoRR, 2018) [Example1,Example2]
- XConv from Liet al.:PointCNN: Convolution On X-Transformed Points (NeurIPS 2018) [Example]
- PPFConv from Denget al.:PPFNet: Global Context Aware Local Features for Robust 3D Point Matching (CVPR 2018)
- GMMConv from Montiet al.:Geometric Deep Learning on Graphs and Manifolds using Mixture Model CNNs (CVPR 2017)
- FeaStConv from Vermaet al.:FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis (CVPR 2018)
- PointTransformerConv from Zhaoet al.:Point Transformer (2020)
- HypergraphConv from Baiet al.:Hypergraph Convolution and Hypergraph Attention (CoRR 2019)
- GravNetConv from Qasimet al.:Learning Representations of Irregular Particle-detector Geometry with Distance-weighted Graph Networks (European Physics Journal C, 2019)
- SuperGAT from Kim and Oh:How To Find Your Friendly Neighborhood: Graph Attention Design With Self-Supervision (ICLR 2021) [Example]
- HGTConv from Huet al.:Heterogeneous Graph Transformer (WWW 2020) [Example]
- HEATConv from Moet al.:Heterogeneous Edge-Enhanced Graph Attention Network For Multi-Agent Trajectory Prediction (CoRR 2021)
- SSGConv from Zhuet al.:Simple Spectral Graph Convolution (ICLR 2021)
- FusedGATConv from Zhanget al.:Understanding GNN Computational Graph: A Coordinated Computation, IO, and Memory Perspective (MLSys 2022)
- GPSConv from Rampášeket al.:Recipe for a General, Powerful, Scalable Graph Transformer (NeurIPS 2022) [Example]
Pooling layers:Graph pooling layers combine the vectorial representations of a set of nodes in a graph (or a subgraph) into a single vector representation that summarizes its properties of nodes.It is commonly applied to graph-level tasks, which require combining node features into a single graph representation.
- Top-K Pooling from Gao and Ji:Graph U-Nets (ICML 2019), Cangeaet al.:Towards Sparse Hierarchical Graph Classifiers (NeurIPS-W 2018) and Knyazevet al.:Understanding Attention and Generalization in Graph Neural Networks (ICLR-W 2019) [Example]
- DiffPool from Yinget al.:Hierarchical Graph Representation Learning with Differentiable Pooling (NeurIPS 2018) [Example]
Expand to see all implemented pooling layers...
- Attentional Aggregation from Liet al.:Graph Matching Networks for Learning the Similarity of Graph Structured Objects (ICML 2019) [Example]
- Set2Set from Vinyalset al.:Order Matters: Sequence to Sequence for Sets (ICLR 2016) [Example]
- Sort Aggregation from Zhanget al.:An End-to-End Deep Learning Architecture for Graph Classification (AAAI 2018) [Example]
- MinCut Pooling from Bianchiet al.:Spectral Clustering with Graph Neural Networks for Graph Pooling (ICML 2020) [Example]
- DMoN Pooling from Tsitsulinet al.:Graph Clustering with Graph Neural Networks (CoRR 2020) [Example]
- Graclus Pooling from Dhillonet al.:Weighted Graph Cuts without Eigenvectors: A Multilevel Approach (PAMI 2007) [Example]
- Voxel Grid Pooling from,e.g., Simonovsky and Komodakis:Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs (CVPR 2017) [Example]
- SAG Pooling from Leeet al.:Self-Attention Graph Pooling (ICML 2019) and Knyazevet al.:Understanding Attention and Generalization in Graph Neural Networks (ICLR-W 2019) [Example]
- Edge Pooling from Diehlet al.:Towards Graph Pooling by Edge Contraction (ICML-W 2019) and Diehl:Edge Contraction Pooling for Graph Neural Networks (CoRR 2019) [Example]
- ASAPooling from Ranjanet al.:ASAP: Adaptive Structure Aware Pooling for Learning Hierarchical Graph Representations (AAAI 2020) [Example]
- PANPooling from Maet al.:Path Integral Based Convolution and Pooling for Graph Neural Networks (NeurIPS 2020)
- MemPooling from Khasahmadiet al.:Memory-Based Graph Networks (ICLR 2020) [Example]
- Graph Multiset Transformer from Baeket al.:Accurate Learning of Graph Representations with Graph Multiset Pooling (ICLR 2021) [Example]
- Equilibrium Aggregation from Bartunovet al.: (UAI 2022) [Example]
GNN models:Our supported GNN models incorporate multiple message passing layers, and users can directly use these pre-defined models to make predictions on graphs.Unlike simple stacking of GNN layers, these models could involve pre-processing, additional learnable parameters, skip connections, graph coarsening, etc.
- SchNet from Schüttet al.:SchNet: A Continuous-filter Convolutional Neural Network for Modeling Quantum Interactions (NIPS 2017) [Example]
- DimeNet andDimeNetPlusPlus from Klicperaet al.:Directional Message Passing for Molecular Graphs (ICLR 2020) andFast and Uncertainty-Aware Directional Message Passing for Non-Equilibrium Molecules (NeurIPS-W 2020) [Example]
- Node2Vec from Grover and Leskovec:node2vec: Scalable Feature Learning for Networks (KDD 2016) [Example]
- Deep Graph Infomax from Veličkovićet al.:Deep Graph Infomax (ICLR 2019) [Example1,Example2]
- Deep Multiplex Graph Infomax from Parket al.:Unsupervised Attributed Multiplex Network Embedding (AAAI 2020) [Example]
- Masked Label Prediction from Shiet al.:Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification (CoRR 2020) [Example]
- PMLP from Yanget al.:Graph Neural Networks are Inherently Good Generalizers: Insights by Bridging GNNs and MLPs (ICLR 2023)
Expand to see all implemented GNN models...
- Jumping Knowledge from Xuet al.:Representation Learning on Graphs with Jumping Knowledge Networks (ICML 2018) [Example]
- AMetaLayer for building any kind of graph network similar to theTensorFlow Graph Nets library from Battagliaet al.:Relational Inductive Biases, Deep Learning, and Graph Networks (CoRR 2018)
- MetaPath2Vec from Donget al.:metapath2vec: Scalable Representation Learning for Heterogeneous Networks (KDD 2017) [Example]
- All variants ofGraph Autoencoders andVariational Autoencoders from:
- Variational Graph Auto-Encoders from Kipf and Welling (NIPS-W 2016) [Example]
- Adversarially Regularized Graph Autoencoder for Graph Embedding from Panet al. (IJCAI 2018) [Example]
- Simple and Effective Graph Autoencoders with One-Hop Linear Models from Salhaet al. (ECML 2020) [Example]
- SEAL from Zhang and Chen:Link Prediction Based on Graph Neural Networks (NeurIPS 2018) [Example]
- RENet from Jinet al.:Recurrent Event Network for Reasoning over Temporal Knowledge Graphs (ICLR-W 2019) [Example]
- GraphUNet from Gao and Ji:Graph U-Nets (ICML 2019) [Example]
- AttentiveFP from Xionget al.:Pushing the Boundaries of Molecular Representation for Drug Discovery with the Graph Attention Mechanism (J. Med. Chem. 2020) [Example]
- DeepGCN and theGENConv from Liet al.:DeepGCNs: Can GCNs Go as Deep as CNNs? (ICCV 2019) andDeeperGCN: All You Need to Train Deeper GCNs (CoRR 2020) [Example]
- RECT from Wanget al.:Network Embedding with Completely-imbalanced Labels (TKDE 2020) [Example]
- GNNExplainer from Yinget al.:GNNExplainer: Generating Explanations for Graph Neural Networks (NeurIPS 2019) [Example1,Example2,Example3]
- Graph-less Neural Networks from Zhanget al.:Graph-less Neural Networks: Teaching Old MLPs New Tricks via Distillation (CoRR 2021) [Example]
- LINKX from Limet al.:Large Scale Learning on Non-Homophilous Graphs:New Benchmarks and Strong Simple Methods (NeurIPS 2021) [Example]
- RevGNN from Liet al.:Training Graph Neural with 1000 Layers (ICML 2021) [Example]
- TransE from Bordeset al.:Translating Embeddings for Modeling Multi-Relational Data (NIPS 2013) [Example]
- ComplEx from Trouillonet al.:Complex Embeddings for Simple Link Prediction (ICML 2016) [Example]
- DistMult from Yanget al.:Embedding Entities and Relations for Learning and Inference in Knowledge Bases (ICLR 2015) [Example]
- RotatE from Sunet al.:RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space (ICLR 2019) [Example]
GNN operators and utilities:PyG comes with a rich set of neural network operators that are commonly used in many GNN models.They follow an extensible design: It is easy to apply these operators and graph utilities to existing GNN layers and models to further enhance model performance.
- DropEdge from Ronget al.:DropEdge: Towards Deep Graph Convolutional Networks on Node Classification (ICLR 2020)
- DropNode,MaskFeature andAddRandomEdge from Youet al.:Graph Contrastive Learning with Augmentations (NeurIPS 2020)
- DropPath from Liet al.:MaskGAE: Masked Graph Modeling Meets Graph Autoencoders (arXiv 2022)
- ShuffleNode from Veličkovićet al.:Deep Graph Infomax (ICLR 2019)
- GraphNorm from Caiet al.:GraphNorm: A Principled Approach to Accelerating Graph Neural Network Training (ICML 2021)
- GDC from Klicperaet al.:Diffusion Improves Graph Learning (NeurIPS 2019) [Example]
Expand to see all implemented GNN operators and utilities...
- GraphSizeNorm from Dwivediet al.:Benchmarking Graph Neural Networks (CoRR 2020)
- PairNorm from Zhao and Akoglu:PairNorm: Tackling Oversmoothing in GNNs (ICLR 2020)
- MeanSubtractionNorm from Yanget al.:Revisiting "Over-smoothing" in Deep GCNs (CoRR 2020)
- DiffGroupNorm from Zhouet al.:Towards Deeper Graph Neural Networks with Differentiable Group Normalization (NeurIPS 2020)
- Tree Decomposition from Jinet al.:Junction Tree Variational Autoencoder for Molecular Graph Generation (ICML 2018)
- TGN from Rossiet al.:Temporal Graph Networks for Deep Learning on Dynamic Graphs (GRL+ 2020) [Example]
- Weisfeiler Lehman Operator from Weisfeiler and Lehman:A Reduction of a Graph to a Canonical Form and an Algebra Arising During this Reduction (Nauchno-Technicheskaya Informatsia 1968) [Example]
- Continuous Weisfeiler Lehman Operator from Togninalliet al.:Wasserstein Weisfeiler-Lehman Graph Kernels (NeurIPS 2019)
- Label Propagation from Zhu and Ghahramani:Learning from Labeled and Unlabeled Data with Label Propagation (CMU-CALD 2002) [Example]
- Local Degree Profile from Cai and Wang:A Simple yet Effective Baseline for Non-attribute Graph Classification (CoRR 2018)
- CorrectAndSmooth from Huanget al.:Combining Label Propagation And Simple Models Out-performs Graph Neural Networks (CoRR 2020) [Example]
- Gini andBRO regularization from Hendersonet al.:Improving Molecular Graph Neural Network Explainability with Orthonormalization and Induced Sparsity (ICML 2021)
- RootedEgoNets andRootedRWSubgraph from Zhaoet al.:From Stars to Subgraphs: Uplifting Any GNN with Local Structure Awareness (ICLR 2022)
- FeaturePropagation from Rossiet al.:On the Unreasonable Effectiveness of Feature Propagation in Learning on Graphs with Missing Node Features (CoRR 2021)
Scalable GNNs:PyG supports the implementation of Graph Neural Networks that can scale to large-scale graphs.Such application is challenging since the entire graph, its associated features and the GNN parameters cannot fit into GPU memory.Many state-of-the-art scalability approaches tackle this challenge by sampling neighborhoods for mini-batch training, graph clustering and partitioning, or by using simplified GNN models.These approaches have been implemented in PyG, and can benefit from the above GNN layers, operators and models.
- NeighborLoader from Hamiltonet al.:Inductive Representation Learning on Large Graphs (NIPS 2017) [Example1,Example2,Example3]
- ClusterGCN from Chianget al.:Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks (KDD 2019) [Example1,Example2]
- GraphSAINT from Zenget al.:GraphSAINT: Graph Sampling Based Inductive Learning Method (ICLR 2020) [Example]
Expand to see all implemented scalable GNNs...
- ShaDow from Zenget al.:Decoupling the Depth and Scope of Graph Neural Networks (NeurIPS 2021) [Example]
- SIGN from Rossiet al.:SIGN: Scalable Inception Graph Neural Networks (CoRR 2020) [Example]
- HGTLoader from Huet al.:Heterogeneous Graph Transformer (WWW 2020) [Example]
PyG is available for Python 3.10 to Python 3.13.
FromPyG 2.3 onwards, you can install and use PyGwithout any external library required except for PyTorch.For this, simply run
pip install torch_geometricIf you want to utilize the full set of features from PyG, there exists several additional libraries you may want to install:
pyg-lib: Heterogeneous GNN operators and graph sampling routinestorch-scatter: Accelerated and efficient sparse reductionstorch-sparse:SparseTensorsupporttorch-cluster: Graph clustering routinestorch-spline-conv:SplineConvsupport
These packages come with their own CPU and GPU kernel implementations based on thePyTorch C++/CUDA/hip(ROCm) extension interface.For a basic usage of PyG, these dependencies arefully optional.We recommend to start with a minimal installation, and install additional dependencies once you start to actually need them.
For ease of installation of these extensions, we providepip wheels for all major OS/PyTorch/CUDA combinations, seehere.
To install the binaries for PyTorch 2.8.0, simply run
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.8.0+${CUDA}.htmlwhere${CUDA} should be replaced by eithercpu,cu126,cu128, orcu129 depending on your PyTorch installation.
cpu | cu126 | cu128 | cu129 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| macOS | ✅ |
To install the binaries for PyTorch 2.7.0, simply run
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.7.0+${CUDA}.htmlwhere${CUDA} should be replaced by eithercpu,cu118,cu126, orcu128 depending on your PyTorch installation.
cpu | cu118 | cu126 | cu128 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| macOS | ✅ |
To install the binaries for PyTorch 2.6.0, simply run
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.6.0+${CUDA}.htmlwhere${CUDA} should be replaced by eithercpu,cu118,cu124, orcu126 depending on your PyTorch installation.
cpu | cu118 | cu124 | cu126 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| macOS | ✅ |
Note: Binaries of older versions are also provided for 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.0/1.10.1/1.10.2, PyTorch 1.11.0, PyTorch 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, PyTorch 2.3.0/2.3.1, PyTorch 2.4.0/2.4.1, and PyTorch 2.5.0/2.5.1 (following the same procedure).For older versions, you might need to explicitly specify the latest supported version number or install viapip install --no-index in order to prevent a manual installation from source.You can look up the latest supported version numberhere.
NVIDIA provides a PyG docker container for effortlessly training and deploying GPU accelerated GNNs with PyG, seehere.
In case you want to experiment with the latest PyG features which are not fully released yet, either install thenightly version of PyG via
pip install pyg-nightlyor install PyGfrom master via
pip install git+https://github.com/pyg-team/pytorch_geometric.gitThe externalpyg-rocm-build repository provides wheels and detailed instructions on how to install PyG for ROCm.If you have any questions about it, please open an issuehere.
Please cite ourPyG 1.0 andPyG 2.0 papers if you use this code in your own work:
@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},}@inproceedings{Fey/etal/2025, title={{PyG} 2.0: Scalable Learning on Real World Graphs}, author={Fey, Matthias and Sunil, Jinu and Nitta, Akihiro and Puri, Rishi and Shah, Manan, and Stojanovi{\v{c}, Bla{\v{z} and Bendias, Ramona and Alexandria, Barghi and Kocijan, Vid and Zhang, Zecheng and He, Xinwei and Lenssen, Jan E. and Leskovec, Jure}, booktitle={Temporal Graph Learning Workshop @ KDD}, year={2025},}Feel free toemail us if you wish your work to be listed in theexternal resources.If you notice anything unexpected, please open anissue and let us know.If you have any questions or are missing a specific feature, feel freeto discuss them with us.We are motivated to constantly make PyG even better.
About
Graph Neural Network Library for PyTorch
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
