PyTorch Geometric (PyG) is a library for Graph Neural Networks (GNNs) built on PyTorch. It provides a modular framework for building and training GNNs, covering the full pipeline from data handling to model evaluation. The core architecture includes a message-passing base class (MessagePassing) that underpins dozens of convolution layers (e.g., GCN, GAT, SAGE, GIN, PNA, GPS), a composable aggregation system (e.g., sum, mean, attention, set2set, transformers), pooling operators (e.g., TopK, SAGPool, DiffPool), normalization layers, and high-level model implementations (e.g., SchNet, DimeNet, LightGCN, TGN, SGFormer). The library supports heterogeneous graphs, temporal graphs, point clouds, knowledge graphs, and distributed training. Key entry points include the `torch_geometric.nn`, `torch_geometric.data`, `torch_geometric.loader`, `torch_geometric.datasets`, and `torch_geometric.transforms` modules. External dependencies are primarily PyTorch itself, with optional packages (torch-scatter, torch-sparse, pyg-lib, etc.) for optimized operations. The repository also contains extensive examples, benchmarks, and an experiment management system (GraphGym). Although primarily a software library, it serves as a research platform with many paper reproductions and dataset loaders, making it a hybrid between a production-grade library and a research codebase.
This repository is a curated collection of machine unlearning research, combining a comprehensive survey paper (in the form of a Kaggle notebook) with executable implementations of several unlearning algorithms across different domains. It includes code for graph neural network unlearning (GraphProjector), federated learning unlearning (FedEraser), and approximate nearest neighbor search with unlearning (UnfoldedSelf-ReconstructionHashing, a fork of ann-benchmarks). The repo serves both as a literature index (taxonomy, evaluation metrics, datasets) and a benchmark hub for reproducing and comparing unlearning methods. While the survey is actively maintained, the algorithm codebases are research prototypes with varying levels of polish and portability.