catalyst-team/catalyst
Accelerated deep learning R&D
What it solves
Catalyst is designed to eliminate the repetitive boilerplate code associated with PyTorch training loops. It allows researchers and developers to implement full-featured deep learning pipelines—including metrics, early stopping, and model checkpointing—with minimal code, focusing on experimentation rather than infrastructure.
How it works
It provides a high-level framework built on top of PyTorch that abstracts the training process. Users can use a SupervisedRunner for standard tasks or create a CustomRunner to define specific batch handling and model inference steps. The framework integrates callbacks for tracking metrics (like accuracy, precision, and recall) and provides utility functions for model post-processing, such as quantization, pruning, and ONNX export.
Who it’s for
It is intended for deep learning researchers and developers who want to accelerate their R&D cycle by using a reproducible and reusable codebase for training, evaluating, and predicting with PyTorch models.
Highlights
- Boilerplate Reduction: Replaces manual for-loops with a structured
train method.
- Integrated Metrics: Built-in callbacks for common metrics like Accuracy, F1-score, and AUC.
- Model Optimization: Utilities for model tracing, quantization, pruning, and exporting to ONNX.
- Flexible Architecture: Supports both high-level supervised runners and fully customizable runners for complex logic.
Related
- Project
pytorch/igniteIgnite is a high-level library for PyTorch that simplifies training and evaluation loops through an flexible event-based system, reducing boilerplate code while maintaining full control.
- Project
Lightning-AI/pytorch-lightningA deep learning framework that abstracts away the engineering boilerplate of PyTorch, enabling researchers to pretrain and finetune AI models at scale across various hardware.
- Project
open-mmlab/mmengineA foundational PyTorch library that serves as a training engine for deep learning models, providing standardized components for training loops, configuration, and monitoring.
- Project
huggingface/accelerateAccelerate is a thin PyTorch wrapper that removes the boilerplate for running training scripts on multiple GPUs, TPUs, or with mixed precision. You keep your own training loop and add just a few lines (an Accelerator object, a prepare() call, and accelerator.backward()). It also offers an optional CLI (accelerate config / accelerate launch) and a notebook launcher. It supports CPU, single/multi-GPU, multi-CPU, TPU, FP16/BF16/FP8 mixed precision, plus experimental DeepSpeed, FSDP, and Megatron-LM. Use it if you want control over your training loop without distributed-setup hassle; skip it if you want a fully high-level framework. Requires Python 3.11+ and PyTorch 2.6.0+; install via pip install accelerate.
- Project
Lightning-AI/torchmetricsA collection of over 100 PyTorch metrics implementations that automate accumulation and synchronization across distributed devices to reduce boilerplate in ML pipelines.