Shortcuts

Architecture

Catalyst framework architecture have the following structure:

catalyst/
    callbacks/
    contrib/
    core/
    data/
    dl/
    engines/
    extras/
    loggers/
    metrics/
    runners/
    utils/
    registy.py
    settings.py

Long story short,

  • callbacks - variety of different for-loop extensions as a mixup, tracing, soft update, etc.

  • contrib - deep learning and reinforcement learning models, losses, layers, etc. Use at your own risk, developing under “code-as-a-documentation” vision.

  • core - core idea of the framework and for-loop wrapper.

  • data - API for useful PyTorch dataset wrappers, samplers and more.

  • dl - main entrypoint, which gives an access to callbacks, core, engines, loggers, runners simultaneously.

  • engines - Catalyst way to handle different hardware available.

  • extras - Python extras.

  • loggers - API for different moniting systems available (Tensorboard, MLflow, etc).

  • metrics - variety of deep learning metric implementations for classification, regression, segmentaiton, ranking and more.

  • runners - Catalyst primitives for different tasks such as supervised learning, self-supervised learning, reinforcement learning, etc.

  • utils - many PyTorch and Python useful functions for deep learning R&D.

  • registry.py - Catalyst Config API and Registry for yaml-based pipeline creation.

  • settings.py - framework main extension settings.

Entrypoints

There are 5 entrypoints to the framework, which are preferale to use:

from catalyst import contrib
from catalyst import data
from catalyst import dl
from catalyst import metrics
from catalyst import utils

The framework was designed to give you easy access to all the functionality through these entrypoints. A few examples:

from catalyst import dl

runner = dl.SupervisedRunner()

or

from catalyst import utils

utils.set_global_seed(42)

There are also 2 extra entrypoints, such as

from catalyst.settings import SETTIGNS
from catalyst.registry import Registry

for advanced Catalyst usage.

If you haven’t found the answer for your question, feel free to join our slack for the discussion.