# PyTorch Geometric — Graph Neural Network Library for PyTorch > A library for deep learning on graphs and other irregular structures, featuring efficient mini-batch training and a broad collection of GNN operators. ## Install Save as a script file and run: # PyTorch Geometric — Graph Neural Network Library for PyTorch ## Quick Use ```bash pip install torch-geometric ``` ```python from torch_geometric.datasets import Planetoid from torch_geometric.nn import GCNConv dataset = Planetoid(root='/tmp/Cora', name='Cora') ``` ## Introduction PyTorch Geometric (PyG) is a library built on PyTorch for writing and training graph neural networks. It provides a unified API for working with graph-structured data, including point clouds, meshes, and molecules, making it straightforward to implement state-of-the-art GNN architectures. ## What PyTorch Geometric Does - Implements 40+ GNN operators (GCN, GAT, GraphSAGE, GIN, and more) - Provides efficient mini-batching for graphs of varying size - Offers built-in benchmark datasets (Cora, PPI, QM9, OGB) - Supports heterogeneous graphs with typed nodes and edges - Includes utilities for graph sampling, clustering, and partitioning ## Architecture Overview PyG extends PyTorch's tensor model with a Data object that stores node features, edge indices, and graph-level attributes in a sparse format. Message-passing layers inherit from MessagePassing, which abstracts neighbor aggregation into propagate, message, and update steps. A DataLoader collects variable-size graphs into diagonal block-sparse batches for GPU-parallel training. ## Self-Hosting & Configuration - Requires PyTorch 1.12+ and a matching CUDA version for GPU support - Install optional dependencies: torch-scatter, torch-sparse, torch-cluster - Use pip or conda for installation; pre-built wheels available for major CUDA versions - Configure num_workers in DataLoader for parallel data loading - Supports distributed training via PyTorch DDP ## Key Features - Composable message-passing framework for custom GNN layers - Heterogeneous graph support with HeteroData and to_hetero transforms - Scalable neighbor sampling for large-scale graphs (NeighborLoader) - Integration with OGB (Open Graph Benchmark) leaderboards - Explain module for GNN interpretability (GNNExplainer, Captum) ## Comparison with Similar Tools - **DGL** — More backend-agnostic (supports TensorFlow, MXNet) but PyG has tighter PyTorch integration - **Spektral** — Keras-based GNN library; smaller operator set - **StellarGraph** — Focuses on enterprise use cases; less active development - **GraphNets** — DeepMind's library built on TensorFlow/Sonnet; research-oriented ## FAQ **Q: Does PyG support heterogeneous graphs?** A: Yes. Use HeteroData and apply to_hetero() to convert homogeneous models to heterogeneous ones automatically. **Q: Can PyG handle billion-edge graphs?** A: Yes, via NeighborLoader and ClusterLoader which sample subgraphs for mini-batch training without loading the full graph. **Q: Is GPU required?** A: No. PyG runs on CPU, but GPU acceleration significantly speeds up training. **Q: How does PyG differ from NetworkX?** A: NetworkX is for general graph analysis. PyG is specifically for training neural networks on graph data with GPU support. ## Sources - https://github.com/pyg-team/pytorch_geometric - https://pytorch-geometric.readthedocs.io --- Source: https://tokrepo.com/en/workflows/44e567fd-42dc-11f1-9bc6-00163e2b0d79 Author: Script Depot