DL¶
Experiment¶
Experiment¶
- 
class catalyst.dl.experiment.experiment.Experiment(model: torch.nn.modules.module.Module, datasets: OrderedDict[str, Union[Dataset, Dict, Any]] = None, loaders: OrderedDict[str, DataLoader] = None, callbacks: Union[OrderedDict[str, Callback], List[Callback]] = None, logdir: str = None, stage: str = 'train', criterion: torch.nn.modules.module.Module = None, optimizer: torch.optim.optimizer.Optimizer = None, scheduler: torch.optim.lr_scheduler._LRScheduler = None, num_epochs: int = 1, valid_loader: str = 'valid', main_metric: str = 'loss', minimize_metric: bool = True, verbose: bool = False, check_time: bool = False, check_run: bool = False, overfit: bool = False, stage_kwargs: Dict = None, checkpoint_data: Dict = None, distributed_params: Dict = None, initial_seed: int = 42)[source]¶
- Bases: - catalyst.core.experiment.IExperiment- Super-simple one-staged experiment, you can use to declare experiment in code. - 
__init__(model: torch.nn.modules.module.Module, datasets: OrderedDict[str, Union[Dataset, Dict, Any]] = None, loaders: OrderedDict[str, DataLoader] = None, callbacks: Union[OrderedDict[str, Callback], List[Callback]] = None, logdir: str = None, stage: str = 'train', criterion: torch.nn.modules.module.Module = None, optimizer: torch.optim.optimizer.Optimizer = None, scheduler: torch.optim.lr_scheduler._LRScheduler = None, num_epochs: int = 1, valid_loader: str = 'valid', main_metric: str = 'loss', minimize_metric: bool = True, verbose: bool = False, check_time: bool = False, check_run: bool = False, overfit: bool = False, stage_kwargs: Dict = None, checkpoint_data: Dict = None, distributed_params: Dict = None, initial_seed: int = 42)[source]¶
- Parameters
- model (Model) – model 
- datasets (OrderedDict[str, Union[Dataset, Dict, Any]]) – dictionary with one or several - torch.utils.data.Datasetfor training, validation or inference used for Loaders automatic creation preferred way for distributed training setup
- loaders (OrderedDict[str, DataLoader]) – dictionary with one or several - torch.utils.data.DataLoaderfor training, validation or inference
- callbacks (Union[List[Callback], OrderedDict[str, Callback]]) – list or dictionary with Catalyst callbacks 
- logdir (str) – path to output directory 
- stage (str) – current stage 
- criterion (Criterion) – criterion function 
- optimizer (Optimizer) – optimizer 
- scheduler (Scheduler) – scheduler 
- num_epochs (int) – number of experiment’s epochs 
- valid_loader (str) – loader name used to calculate the metrics and save the checkpoints. For example, you can pass train and then the metrics will be taken from train loader. 
- main_metric (str) – the key to the name of the metric by which the checkpoints will be selected. 
- minimize_metric (bool) – flag to indicate whether the - main_metricshould be minimized.
- verbose (bool) – if True, it displays the status of the training to the console. 
- check_time (bool) – if True, computes the execution time of training process and displays it to the console. 
- check_run (bool) – if True, we run only 3 batches per loader and 3 epochs per stage to check pipeline correctness 
- overfit (bool) – if True, then takes only one batch per loader for model overfitting, for advance usage please check - BatchOverfitCallback
- stage_kwargs (dict) – additional stage params 
- checkpoint_data (dict) – additional data to save in checkpoint, for example: - class_names,- date_of_training, etc
- distributed_params (dict) – dictionary with the parameters for distributed and FP16 method 
- initial_seed (int) – experiment’s initial seed value 
 
 
 - 
property distributed_params¶
- Dict with the parameters for distributed and FP16 method. 
 - 
get_callbacks(stage: str) → OrderedDict[str, Callback][source]¶
- Returns the callbacks for a given stage. 
 - 
get_criterion(stage: str) → torch.nn.modules.module.Module[source]¶
- Returns the criterion for a given stage. 
 - 
get_loaders(stage: str, epoch: int = None) → OrderedDict[str, DataLoader][source]¶
- Returns the loaders for a given stage. 
 - 
get_model(stage: str) → torch.nn.modules.module.Module[source]¶
- Returns the model for a given stage. 
 - 
get_optimizer(stage: str, model: torch.nn.modules.module.Module) → torch.optim.optimizer.Optimizer[source]¶
- Returns the optimizer for a given stage. 
 - 
get_scheduler(stage: str, optimizer=None) → torch.optim.lr_scheduler._LRScheduler[source]¶
- Returns the scheduler for a given stage. 
 - 
get_stage_params(stage: str) → Mapping[str, Any][source]¶
- Returns the state parameters for a given stage. 
 - 
property hparams¶
- Returns hyper parameters 
 - 
property initial_seed¶
- Experiment’s initial seed value. 
 - 
property logdir¶
- Path to the directory where the experiment logs. 
 - 
property stages¶
- Experiment’s stage names (array with one value). 
 
- 
ConfigExperiment¶
- 
class catalyst.dl.experiment.config.ConfigExperiment(config: Dict)[source]¶
- Bases: - catalyst.core.experiment.IExperiment- Experiment created from a configuration file. - 
STAGE_KEYWORDS= ['criterion_params', 'optimizer_params', 'scheduler_params', 'data_params', 'transform_params', 'stage_params', 'callbacks_params']¶
 - 
property distributed_params¶
- Dict with the parameters for distributed and FP16 methond. 
 - 
get_criterion(stage: str) → torch.nn.modules.module.Module[source]¶
- Returns the criterion for a given stage. 
 - 
get_loaders(stage: str, epoch: int = None) → OrderedDict[str, DataLoader][source]¶
- Returns the loaders for a given stage. 
 - 
get_optimizer(stage: str, model: Union[torch.nn.modules.module.Module, Dict[str, torch.nn.modules.module.Module]]) → Union[torch.optim.optimizer.Optimizer, Dict[str, torch.optim.optimizer.Optimizer]][source]¶
- Returns the optimizer for a given stage. - Parameters
- stage (str) – stage name 
- model (Union[Model, Dict[str, Model]]) – model or a dict of models 
 
- Returns
- optimizer for selected stage 
 
 - 
get_scheduler(stage: str, optimizer: torch.optim.optimizer.Optimizer) → torch.optim.lr_scheduler._LRScheduler[source]¶
- Returns the scheduler for a given stage. 
 - 
get_stage_params(stage: str) → Mapping[str, Any][source]¶
- Returns the state parameters for a given stage. 
 - 
get_transforms(stage: str = None, dataset: str = None) → Callable[source]¶
- Returns transform for a given stage and dataset. - Parameters
- stage (str) – stage name 
- dataset (str) – dataset name (e.g. “train”, “valid”), will be used only if the value of _key_value` is - True
 
- Returns
- transform function 
- Return type
- Callable 
 
 - 
property hparams¶
- Returns hyperparameters 
 - 
property initial_seed¶
- Experiment’s initial seed value. 
 - 
property logdir¶
- Path to the directory where the experiment logs. 
 - 
property stages¶
- Experiment’s stage names. 
 
- 
SupervisedExperiment¶
- 
class catalyst.dl.experiment.supervised.SupervisedExperiment(model: torch.nn.modules.module.Module, datasets: OrderedDict[str, Union[Dataset, Dict, Any]] = None, loaders: OrderedDict[str, DataLoader] = None, callbacks: Union[OrderedDict[str, Callback], List[Callback]] = None, logdir: str = None, stage: str = 'train', criterion: torch.nn.modules.module.Module = None, optimizer: torch.optim.optimizer.Optimizer = None, scheduler: torch.optim.lr_scheduler._LRScheduler = None, num_epochs: int = 1, valid_loader: str = 'valid', main_metric: str = 'loss', minimize_metric: bool = True, verbose: bool = False, check_time: bool = False, check_run: bool = False, overfit: bool = False, stage_kwargs: Dict = None, checkpoint_data: Dict = None, distributed_params: Dict = None, initial_seed: int = 42)[source]¶
- Bases: - catalyst.dl.experiment.experiment.Experiment- Supervised experiment. - The main difference with Experiment that it will add several callbacks by default if you haven’t. - Here are list of callbacks by default:
- CriterionCallback:
- measures loss with specified - criterion.
- OptimizerCallback:
- abstraction over - optimizerstep.
- SchedulerCallback:
- only in case if you provided scheduler to your experiment does lr_scheduler.step 
- CheckpointCallback:
- saves model and optimizer state each epoch callback to save/restore your model/criterion/optimizer/metrics. 
- ConsoleLogger:
- standard Catalyst logger, translates - runner.*_metricsto console and text file
- TensorboardLogger:
- will write - runner.*_metricsto tensorboard
- RaiseExceptionCallback:
- will raise exception if needed 
 
 - 
get_callbacks(stage: str) → OrderedDict[str, Callback][source]¶
- Override of - BaseExperiment.get_callbacksmethod. Will add several of callbacks by default in case they missed.- Parameters
- stage (str) – name of stage. It should start with infer if you don’t need default callbacks, as they required only for training stages. 
- Returns
- Ordered dictionary of callbacks
- for experiment 
 
- Return type
- OrderedDict[str, Callback] 
 
 
Runner¶
Runner¶
- 
class catalyst.dl.runner.runner.Runner(model: Union[torch.nn.modules.module.Module, Dict[str, torch.nn.modules.module.Module]] = None, device: Union[str, torch.device] = None, **kwargs)[source]¶
- Bases: - catalyst.core.runner.IStageBasedRunner- Deep Learning Runner for supervised, unsupervised, gan, etc runs. - 
infer(*, model: torch.nn.modules.module.Module, datasets: OrderedDict[str, Union[Dataset, Dict, Any]] = None, loaders: OrderedDict[str, DataLoader] = None, callbacks: Union[List[Callback], OrderedDict[str, Callback]] = None, logdir: str = None, resume: str = None, verbose: bool = False, stage_kwargs: Dict = None, fp16: Union[Dict, bool] = None, check: bool = False, timeit: bool = False, initial_seed: int = 42, state_kwargs: Dict = None) → None[source]¶
- Starts the inference stage of the model. - Parameters
- model (Model) – model for inference 
- datasets (OrderedDict[str, Union[Dataset, Dict, Any]]) – dictionary with one or several - torch.utils.data.Datasetfor training, validation or inference used for Loaders automatic creation preferred way for distributed training setup
- loaders (OrderedDict[str, DataLoader]) – dictionary with one or several - torch.utils.data.DataLoaderfor training, validation or inference
- callbacks (Union[List[Callback], OrderedDict[str, Callback]]) – list or dictionary with Catalyst callbacks 
- logdir (str) – path to output directory 
- resume (str) – path to checkpoint to use for resume 
- verbose (bool) – if True, it displays the status of the training to the console. 
- stage_kwargs (dict) – additional stage params 
- fp16 (Union[Dict, bool]) – If not None, then sets training to FP16. See https://nvidia.github.io/apex/amp.html#properties if fp16=True, params by default will be - {"opt_level": "O1"}
- check (bool) – if True, then only checks that pipeline is working (3 epochs only) 
- timeit (bool) – if True, computes the execution time of training process and displays it to the console. 
- initial_seed (int) – experiment’s initial seed value 
- state_kwargs (dict) – deprecated, use stage_kwargs instead 
 
- Raises
- NotImplementedError – if both resume and CheckpointCallback already exist 
 
 - 
predict_batch(batch: Mapping[str, Any], **kwargs) → Mapping[str, Any][source]¶
- Run model inference on specified data batch. - Parameters
- batch (Mapping[str, Any]) – dictionary with data batches from DataLoader. 
- **kwargs – additional kwargs to pass to the model 
 
 - # noqa: DAR202 :returns: model output dictionary :rtype: Mapping[str, Any] - Raises
- NotImplementedError – if not implemented yet 
 
 - 
predict_loader(*, loader: torch.utils.data.dataloader.DataLoader, model: torch.nn.modules.module.Module = None, resume: str = None, fp16: Union[Dict, bool] = None, initial_seed: int = 42) → Generator[source]¶
- Runs model inference on PyTorch Dataloader and returns python generator with model predictions from runner.predict_batch. Cleans up the experiment info to avoid possible collisions. Sets is_train_loader and is_valid_loader to False while keeping is_infer_loader as True. Moves model to evaluation mode. - Parameters
- loader (DataLoader) – loader to predict 
- model (Model) – model to use for prediction 
- resume (str) – path to checkpoint to resume 
- fp16 (Union[Dict, bool]) – fp16 usage flag 
- initial_seed (int) – seed to use before prediction 
 
- Yields
- bathes with model predictions 
 
 - 
trace(*, model: torch.nn.modules.module.Module = None, batch: Any = None, logdir: str = None, loader: torch.utils.data.dataloader.DataLoader = None, method_name: str = 'forward', mode: str = 'eval', requires_grad: bool = False, fp16: Union[Dict, bool] = None, device: Union[str, torch.device] = 'cpu', predict_params: dict = None) → torch.jit.ScriptModule[source]¶
- Traces model using Torch Jit. - Parameters
- model (Model) – model to trace 
- batch – batch to forward through the model to trace 
- logdir (str, optional) – If specified, the result will be written to the directory 
- loader (DataLoader, optional) – if batch is not specified, the batch will be - next(iter(loader))
- method_name (str) – model’s method name that will be traced 
- mode (str) – - trainor- eval
- requires_grad (bool) – flag to trace with gradients 
- fp16 (Union[Dict, bool]) – If not None, then sets tracing params to FP16 
- device (Device) – Torch device or a string 
- predict_params (dict) – additional parameters for model forward 
 
- Returns
- traced model 
- Return type
- ScriptModule 
- Raises
- ValueError – if batch and loader are Nones 
 
 - 
train(*, model: torch.nn.modules.module.Module, criterion: torch.nn.modules.module.Module = None, optimizer: torch.optim.optimizer.Optimizer = None, scheduler: torch.optim.lr_scheduler._LRScheduler = None, datasets: OrderedDict[str, Union[Dataset, Dict, Any]] = None, loaders: OrderedDict[str, DataLoader] = None, callbacks: Union[List[Callback], OrderedDict[str, Callback]] = None, logdir: str = None, resume: str = None, num_epochs: int = 1, valid_loader: str = 'valid', main_metric: str = 'loss', minimize_metric: bool = True, verbose: bool = False, stage_kwargs: Dict = None, checkpoint_data: Dict = None, fp16: Union[Dict, bool] = None, distributed: bool = False, check: bool = False, overfit: bool = False, timeit: bool = False, load_best_on_end: bool = False, initial_seed: int = 42, state_kwargs: Dict = None) → None[source]¶
- Starts the train stage of the model. - Parameters
- model (Model) – model to train 
- criterion (Criterion) – criterion function for training 
- optimizer (Optimizer) – optimizer for training 
- scheduler (Scheduler) – scheduler for training 
- datasets (OrderedDict[str, Union[Dataset, Dict, Any]]) – dictionary with one or several - torch.utils.data.Datasetfor training, validation or inference used for Loaders automatic creation preferred way for distributed training setup
- loaders (OrderedDict[str, DataLoader]) – dictionary with one or several - torch.utils.data.DataLoaderfor training, validation or inference
- callbacks (Union[List[Callback], OrderedDict[str, Callback]]) – list or dictionary with Catalyst callbacks 
- logdir (str) – path to output directory 
- resume (str) – path to checkpoint for model 
- num_epochs (int) – number of training epochs 
- valid_loader (str) – loader name used to calculate the metrics and save the checkpoints. For example, you can pass train and then the metrics will be taken from train loader. 
- main_metric (str) – the key to the name of the metric by which the checkpoints will be selected. 
- minimize_metric (bool) – flag to indicate whether the - main_metricshould be minimized.
- verbose (bool) – if True, it displays the status of the training to the console. 
- stage_kwargs (dict) – additional params for stage 
- checkpoint_data (dict) – additional data to save in checkpoint, for example: - class_names,- date_of_training, etc
- fp16 (Union[Dict, bool]) – If not None, then sets training to FP16. See https://nvidia.github.io/apex/amp.html#properties if fp16=True, params by default will be - {"opt_level": "O1"}
- distributed (bool) – if True will start training in distributed mode. Note: Works only with python scripts. No jupyter support. 
- check (bool) – if True, then only checks that pipeline is working (3 epochs only with 3 batches per loader) 
- overfit (bool) – if True, then takes only one batch per loader for model overfitting, for advance usage please check - BatchOverfitCallback
- timeit (bool) – if True, computes the execution time of training process and displays it to the console. 
- load_best_on_end (bool) – if True, Runner will load best checkpoint state (model, optimizer, etc) according to validation metrics. Requires specified - logdir.
- initial_seed (int) – experiment’s initial seed value 
- state_kwargs (dict) – deprecated, use stage_kwargs instead 
 
- Raises
- NotImplementedError – if both resume and CheckpointCallback already exist 
 
 
- 
SupervisedRunner¶
- 
class catalyst.dl.runner.supervised.SupervisedRunner(model: Union[torch.nn.modules.module.Module, Dict[str, torch.nn.modules.module.Module]] = None, device: Union[str, torch.device] = None, input_key: Any = 'features', output_key: Any = 'logits', input_target_key: str = 'targets')[source]¶
- Bases: - catalyst.dl.runner.runner.Runner- Runner for experiments with supervised model. - 
__init__(model: Union[torch.nn.modules.module.Module, Dict[str, torch.nn.modules.module.Module]] = None, device: Union[str, torch.device] = None, input_key: Any = 'features', output_key: Any = 'logits', input_target_key: str = 'targets')[source]¶
- Parameters
- model (RunnerModel) – Torch model object 
- device (Device) – Torch device 
- input_key (Any) – Key in batch dict mapping for model input 
- output_key (Any) – Key in output dict model output will be stored under 
- input_target_key (str) – Key in batch dict mapping for target 
 
 
 - 
forward(batch: Mapping[str, Any], **kwargs) → Mapping[str, Any][source]¶
- Forward method for your Runner. Should not be called directly outside of runner. If your model has specific interface, override this method to use it - Parameters
- batch (Mapping[str, Any]) – dictionary with data batches from DataLoaders. 
- **kwargs – additional parameters to pass to the model 
 
- Returns
- dict with model output batch 
 
 - 
predict_batch(batch: Mapping[str, Any], **kwargs) → Mapping[str, Any][source]¶
- Run model inference on specified data batch. - Warning - You should not override this method. If you need specific model call, override forward() method - Parameters
- batch (Mapping[str, Any]) – dictionary with data batches from DataLoader. 
- **kwargs – additional kwargs to pass to the model 
 
- Returns
- model output dictionary 
- Return type
- Mapping[str, Any] 
 
 
- 
Callbacks¶
ConfusionMatrixCallback¶
- 
class catalyst.dl.callbacks.confusion_matrix.ConfusionMatrixCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'confusion_matrix', version: str = 'tnt', class_names: List[str] = None, num_classes: int = None, plot_params: Dict = None, tensorboard_callback_name: str = '_tensorboard')[source]¶
- Bases: - catalyst.core.callback.Callback- @TODO: Docs. Contribution is welcome. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'confusion_matrix', version: str = 'tnt', class_names: List[str] = None, num_classes: int = None, plot_params: Dict = None, tensorboard_callback_name: str = '_tensorboard')[source]¶
- Parameters
- @TODO – Docs. Contribution is welcome 
 
 - 
on_batch_end(runner: catalyst.core.runner.IRunner)[source]¶
- Batch end hook. - Parameters
- runner (IRunner) – current runner 
 
 
- 
InferCallback¶
- 
class catalyst.dl.callbacks.inference.InferCallback(out_dir=None, out_prefix=None)[source]¶
- Bases: - catalyst.core.callback.Callback- @TODO: Docs. Contribution is welcome. - 
on_batch_end(runner: catalyst.core.runner.IRunner)[source]¶
- Batch end hook. - Parameters
- runner (IRunner) – current runner 
 
 - 
on_loader_end(runner: catalyst.core.runner.IRunner)[source]¶
- Loader end hook. - Parameters
- runner (IRunner) – current runner 
 
 
- 
MixupCallback¶
- 
class catalyst.dl.callbacks.mixup.MixupCallback(input_key: str = 'targets', output_key: str = 'logits', fields: List[str] = ('features', ), alpha=1.0, on_train_only=True, **kwargs)[source]¶
- Bases: - catalyst.core.callbacks.criterion.CriterionCallback- Callback to do mixup augmentation. - More details about mixin can be found in the paper mixup: Beyond Empirical Risk Minimization. - Warning - catalyst.dl.callbacks.MixupCallback is inherited from catalyst.dl.CriterionCallback and does its work. You may not use them together. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', fields: List[str] = ('features', ), alpha=1.0, on_train_only=True, **kwargs)[source]¶
- Parameters
- fields (List[str]) – list of features which must be affected. 
- alpha (float) – beta distribution a=b parameters. Must be >=0. The more alpha closer to zero the less effect of the mixup. 
- on_train_only (bool) – Apply to train only. As the mixup use the proxy inputs, the targets are also proxy. We are not interested in them, are we? So, if on_train_only is True, use a standard output/metric for validation. 
 
 
 
- 
LRFinder¶
- 
class catalyst.dl.callbacks.scheduler.LRFinder(final_lr, scale: str = 'log', num_steps: Optional[int] = None, optimizer_key: str = None)[source]¶
- Bases: - catalyst.core.callbacks.scheduler.LRUpdater- Helps you find an optimal learning rate for a model, as per suggestion of Cyclical Learning Rates for Training Neural Networks paper. Learning rate is increased in linear or log scale, depending on user input. - See How Do You Find A Good Learning Rate article for details. - 
__init__(final_lr, scale: str = 'log', num_steps: Optional[int] = None, optimizer_key: str = None)[source]¶
- Parameters
- final_lr – final learning rate to try with 
- scale (str) – learning rate increasing scale (“log” or “linear”) 
- num_steps (Optional[int]) – number of batches to try; if None - whole loader would be used. 
- optimizer_key (str) – which optimizer key to use for learning rate scheduling 
 
 
 
- 
Metrics¶
Accuracy¶
- 
class catalyst.dl.callbacks.metrics.accuracy.AccuracyCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'accuracy', accuracy_args: List[int] = None, num_classes: int = None, threshold: float = None, activation: str = None)[source]¶
- Bases: - catalyst.core.callbacks.metrics.MultiMetricCallback- Accuracy metric callback. - It can be used either for
- multi-class task:
- -you can use accuracy_args. -threshold and activation are not required. -input_key point on tensor: batch_size. -output_key point on tensor: batch_size x num_classes. 
 
- OR multi-label task, in this case:
- -you must specify threshold and activation. -accuracy_args and num_classes will not be used (because of there is no method to apply top-k in multi-label classification). -input_key, output_key point on tensor: batch_size x num_classes. -output_key point on a tensor with binary vectors. 
 
 
 - Note - There is no need to choose a type (multi-class/multi label). An appropriate type will be chosen automatically via shape of tensors. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'accuracy', accuracy_args: List[int] = None, num_classes: int = None, threshold: float = None, activation: str = None)[source]¶
- Parameters
- input_key (str) – input key to use for accuracy calculation; specifies our y_true 
- output_key (str) – output key to use for accuracy calculation; specifies our y_pred 
- prefix (str) – key for the metric’s name 
- accuracy_args (List[int]) – specifies which accuracy@K to log: [1] - accuracy [1, 3] - accuracy at 1 and 3 [1, 3, 5] - accuracy at 1, 3 and 5 
- num_classes (int) – number of classes to calculate - accuracy_argsif- accuracy_argsis None
- threshold (float) – threshold for outputs binarization. 
- activation (str) – An torch.nn activation applied to the outputs. Must be one of - "none",- "Sigmoid", or- "Softmax"
 
 
 
- 
class catalyst.dl.callbacks.metrics.accuracy.MapKCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'map', map_args: List[int] = None, num_classes: int = None)[source]¶
- Bases: - catalyst.core.callbacks.metrics.MultiMetricCallback- mAP@k metric callback. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'map', map_args: List[int] = None, num_classes: int = None)[source]¶
- Parameters
- input_key (str) – input key to use for calculation mean average accuracy at k; specifies our y_true 
- output_key (str) – output key to use for calculation mean average accuracy at k; specifies our y_pred 
- prefix (str) – key for the metric’s name 
- map_args (List[int]) – specifies which map@K to log. [1] - map@1 [1, 3] - map@1 and map@3 [1, 3, 5] - map@1, map@3 and map@5 
- num_classes (int) – number of classes to calculate - map_argsif- map_argsis None
 
 
 
- 
AUC¶
- 
class catalyst.dl.callbacks.metrics.auc.AUCCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'auc', class_names: List[str] = None, num_classes: int = 2, activation: str = 'Sigmoid')[source]¶
- Bases: - catalyst.dl.callbacks.meter.MeterMetricsCallback- Calculates the AUC per class for each loader. - Note - Currently, supports binary and multi-label cases. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'auc', class_names: List[str] = None, num_classes: int = 2, activation: str = 'Sigmoid')[source]¶
- Parameters
- input_key (str) – input key to use for auc calculation specifies our - y_true
- output_key (str) – output key to use for auc calculation; specifies our - y_pred
- prefix (str) – name to display for auc when printing 
- class_names (List[str]) – class names to display in the logs. If None, defaults to indices for each class, starting from 0 
- num_classes (int) – Number of classes; must be > 1 
- activation (str) – An torch.nn activation applied to the outputs. Must be one of - 'none',- 'Sigmoid', or- 'Softmax2d'
 
 
 
- 
Dice¶
- 
class catalyst.dl.callbacks.metrics.dice.DiceCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'dice', eps: float = 1e-07, threshold: float = None, activation: str = 'Sigmoid')[source]¶
- Bases: - catalyst.core.callbacks.metrics.MetricCallback- Dice metric callback. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'dice', eps: float = 1e-07, threshold: float = None, activation: str = 'Sigmoid')[source]¶
- Parameters
- input_key (str) – input key to use for dice calculation; specifies our y_true 
- output_key (str) – output key to use for dice calculation; specifies our y_pred 
 
 
 
- 
- 
class catalyst.dl.callbacks.metrics.dice.MulticlassDiceMetricCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'dice', class_names=None)[source]¶
- Bases: - catalyst.core.callback.Callback- Global Multi-Class Dice Metric Callback: calculates the exact dice score across multiple batches. This callback is good for getting the dice score with small batch sizes where the batchwise dice is noisier. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'dice', class_names=None)[source]¶
- Parameters
- input_key (str) – input key to use for dice calculation; specifies our y_true 
- output_key (str) – output key to use for dice calculation; specifies our y_pred 
- prefix (str) – prefix for printing the metric 
- class_names (dict/List) – if dictionary, should be: {class_id: class_name, …} where class_id is an integer This allows you to ignore class indices. if list, make sure it corresponds to the number of classes 
 
 
 
- 
F1 score¶
- 
class catalyst.dl.callbacks.metrics.f1_score.F1ScoreCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'f1_score', beta: float = 1.0, eps: float = 1e-07, threshold: float = None, activation: str = 'Sigmoid')[source]¶
- Bases: - catalyst.core.callbacks.metrics.MetricCallback- F1 score metric callback. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'f1_score', beta: float = 1.0, eps: float = 1e-07, threshold: float = None, activation: str = 'Sigmoid')[source]¶
- Parameters
- input_key (str) – input key to use for iou calculation specifies our - y_true
- output_key (str) – output key to use for iou calculation; specifies our - y_pred
- prefix (str) – key to store in logs 
- beta (float) – beta param for f_score 
- eps (float) – epsilon to avoid zero division 
- threshold (float) – threshold for outputs binarization 
- activation (str) – An torch.nn activation applied to the outputs. Must be one of - 'none',- 'Sigmoid', or- 'Softmax2d'
 
 
 
- 
IOU¶
- 
class catalyst.dl.callbacks.metrics.iou.IouCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'iou', eps: float = 1e-07, threshold: float = None, activation: str = 'Sigmoid')[source]¶
- Bases: - catalyst.core.callbacks.metrics.MetricCallback- IoU (Jaccard) metric callback. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'iou', eps: float = 1e-07, threshold: float = None, activation: str = 'Sigmoid')[source]¶
- Parameters
- input_key (str) – input key to use for iou calculation specifies our - y_true
- output_key (str) – output key to use for iou calculation; specifies our - y_pred
- prefix (str) – key to store in logs 
- eps (float) – epsilon to avoid zero division 
- threshold (float) – threshold for outputs binarization 
- activation (str) – An torch.nn activation applied to the outputs. Must be one of - 'none',- 'Sigmoid',- 'Softmax2d'
 
 
 
- 
- 
catalyst.dl.callbacks.metrics.iou.JaccardCallback¶
- 
class catalyst.dl.callbacks.metrics.iou.ClasswiseIouCallback(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'iou', classes: List[str] = None, num_classes: int = None, eps: float = 1e-07, threshold: float = None, activation: str = 'Sigmoid')[source]¶
- Bases: - catalyst.core.callbacks.metrics.MultiMetricCallback- Classwise IoU (Jaccard) metric callback. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', prefix: str = 'iou', classes: List[str] = None, num_classes: int = None, eps: float = 1e-07, threshold: float = None, activation: str = 'Sigmoid')[source]¶
- Parameters
- input_key (str) – input key to use for iou calculation specifies our - y_true
- output_key (str) – output key to use for iou calculation; specifies our - y_pred
- prefix (str) – key to store in logs (will be prefix_class_name) 
- classes (List[str]) – list of class names You should specify either ‘classes’ or ‘num_classes’ 
- num_classes (int) – number of classes You should specify either ‘classes’ or ‘num_classes’ 
- eps (float) – epsilon to avoid zero division 
- threshold (float) – threshold for outputs binarization 
- activation (str) – An torch.nn activation applied to the outputs. Must be one of - 'none',- 'Sigmoid',- 'Softmax2d'
 
 
 
- 
- 
catalyst.dl.callbacks.metrics.iou.ClasswiseJaccardCallback¶
- alias of - catalyst.dl.callbacks.metrics.iou.ClasswiseIouCallback
Global precision, recall and F1-score¶
- 
class catalyst.dl.callbacks.metrics.ppv_tpr_f1.PrecisionRecallF1ScoreCallback(input_key: str = 'targets', output_key: str = 'logits', class_names: List[str] = None, num_classes: int = 2, threshold: float = 0.5, activation: str = 'Sigmoid')[source]¶
- Bases: - catalyst.dl.callbacks.meter.MeterMetricsCallback- Calculates the global precision (positive predictive value or ppv), recall (true positive rate or tpr), and F1-score per class for each loader. - Note - Currently, supports binary and multi-label cases. - 
__init__(input_key: str = 'targets', output_key: str = 'logits', class_names: List[str] = None, num_classes: int = 2, threshold: float = 0.5, activation: str = 'Sigmoid')[source]¶
- Parameters
- input_key (str) – input key to use for metric calculation specifies our - y_true
- output_key (str) – output key to use for metric calculation; specifies our - y_pred
- class_names (List[str]) – class names to display in the logs. If None, defaults to indices for each class, starting from 0. 
- num_classes (int) – Number of classes; must be > 1 
- threshold (float) – threshold for outputs binarization 
- activation (str) – An torch.nn activation applied to the outputs. Must be one of - 'none',- 'Sigmoid',- 'Softmax2d'
 
 
 
- 
Utils¶
Torch¶
- 
catalyst.dl.utils.torch.get_loader(data_source: Iterable[dict], open_fn: Callable, dict_transform: Callable = None, sampler=None, collate_fn: Callable = <function default_collate>, batch_size: int = 32, num_workers: int = 4, shuffle: bool = False, drop_last: bool = False)[source]¶
- Creates a DataLoader from given source and its open/transform params. - Parameters
- data_source (Iterable[dict]) – and iterable containing your data annotations, (for example path to images, labels, bboxes, etc) 
- open_fn (Callable) – function, that can open your annotations dict and transfer it to data, needed by your network (for example open image by path, or tokenize read string) 
- dict_transform (callable) – transforms to use on dict (for example normalize image, add blur, crop/resize/etc) 
- sampler (Sampler, optional) – defines the strategy to draw samples from the dataset 
- collate_fn (callable, optional) – merges a list of samples to form a mini-batch of Tensor(s). Used when using batched loading from a map-style dataset 
- batch_size (int, optional) – how many samples per batch to load 
- num_workers (int, optional) – how many subprocesses to use for data loading. - 0means that the data will be loaded in the main process
- shuffle (bool, optional) – set to - Trueto have the data reshuffled at every epoch (default:- False).
- drop_last (bool, optional) – set to - Trueto drop the last incomplete batch, if the dataset size is not divisible by the batch size. If- Falseand the size of dataset is not divisible by the batch size, then the last batch will be smaller. (default:- False)
 
- Returns
- DataLoader with - catalyst.data.ListDataset
 
Trace¶
- 
catalyst.dl.utils.trace.trace_model(model: torch.nn.modules.module.Module, predict_fn: Callable, batch=None, method_name: str = 'forward', mode: str = 'eval', requires_grad: bool = False, opt_level: str = None, device: Union[str, torch.device] = 'cpu', predict_params: dict = None) → torch.jit.ScriptModule[source]¶
- Traces model using runner and batch. - Parameters
- model – Model to trace 
- predict_fn – Function to run prediction with the model provided, takes model, inputs parameters 
- batch – Batch to trace the model 
- method_name (str) – Model’s method name that will be used as entrypoint during tracing 
- mode (str) – Mode for model to trace ( - trainor- eval)
- requires_grad (bool) – Flag to use grads 
- opt_level (str) – Apex FP16 init level, optional 
- device (str) – Torch device 
- predict_params (dict) – additional parameters for model forward 
 
- Returns
- Traced model 
- Return type
- jit.ScriptModule 
- Raises
- ValueError – if both batch and predict_fn must be specified or mode is not in ‘eval’ or ‘train’. 
 
- 
catalyst.dl.utils.trace.trace_model_from_checkpoint(logdir: pathlib.Path, method_name: str, checkpoint_name: str, stage: str = None, loader: Union[str, int] = None, mode: str = 'eval', requires_grad: bool = False, opt_level: str = None, device: Union[str, torch.device] = 'cpu')[source]¶
- Traces model using created experiment and runner. - Parameters
- logdir (Union[str, Path]) – Path to Catalyst logdir with model 
- checkpoint_name (str) – Name of model checkpoint to use 
- stage (str) – experiment’s stage name 
- loader (Union[str, int]) – experiment’s loader name or its index 
- method_name (str) – Model’s method name that will be used as entrypoint during tracing 
- mode (str) – Mode for model to trace ( - trainor- eval)
- requires_grad (bool) – Flag to use grads 
- opt_level (str) – AMP FP16 init level 
- device (str) – Torch device 
 
- Returns
- the traced model 
 
- 
catalyst.dl.utils.trace.trace_model_from_runner(runner: catalyst.core.runner.IRunner, checkpoint_name: str = None, method_name: str = 'forward', mode: str = 'eval', requires_grad: bool = False, opt_level: str = None, device: Union[str, torch.device] = 'cpu') → torch.jit.ScriptModule[source]¶
- Traces model using created experiment and runner. - Parameters
- runner (Runner) – Current runner. 
- checkpoint_name (str) – Name of model checkpoint to use, if None traces current model from runner 
- method_name (str) – Model’s method name that will be used as entrypoint during tracing 
- mode (str) – Mode for model to trace ( - trainor- eval)
- requires_grad (bool) – Flag to use grads 
- opt_level (str) – AMP FP16 init level 
- device (str) – Torch device 
 
- Returns
- Traced model 
- Return type
- ScriptModule 
 
- 
catalyst.dl.utils.trace.get_trace_name(method_name: str, mode: str = 'eval', requires_grad: bool = False, opt_level: str = None, additional_string: str = None) → str[source]¶
- Creates a file name for the traced model. - Parameters
- method_name (str) – model’s method name 
- mode (str) – - trainor- eval
- requires_grad (bool) – flag if model was traced with gradients 
- opt_level (str) – opt_level if model was traced in FP16 
- additional_string (str) – any additional information 
 
- Returns
- Filename for traced model to be saved. 
- Return type
- str 
 
- 
catalyst.dl.utils.trace.save_traced_model(model: torch.jit.ScriptModule, logdir: Union[str, pathlib.Path] = None, method_name: str = 'forward', mode: str = 'eval', requires_grad: bool = False, opt_level: str = None, out_dir: Union[str, pathlib.Path] = None, out_model: Union[str, pathlib.Path] = None, checkpoint_name: str = None) → None[source]¶
- Saves traced model. - Parameters
- model (ScriptModule) – Traced model 
- logdir (Union[str, Path]) – Path to experiment 
- method_name (str) – Name of the method was traced 
- mode (str) – Model’s mode - train or eval 
- requires_grad (bool) – Whether model was traced with require_grad or not 
- opt_level (str) – Apex FP16 init level used during tracing 
- out_dir (Union[str, Path]) – Directory to save model to (overrides logdir) 
- out_model (Union[str, Path]) – Path to save model to (overrides logdir & out_dir) 
- checkpoint_name (str) – Checkpoint name used to restore the model 
 
- Raises
- ValueError – if nothing out of logdir, out_dir or out_model is specified. 
 
- 
catalyst.dl.utils.trace.load_traced_model(model_path: Union[str, pathlib.Path], device: Union[str, torch.device] = 'cpu', opt_level: str = None) → torch.jit.ScriptModule[source]¶
- Loads a traced model. - Parameters
- model_path – Path to traced model 
- device (str) – Torch device 
- opt_level (str) – Apex FP16 init level, optional 
 
- Returns
- Traced model 
- Return type
- ScriptModule 
 
Wizard¶
- 
class catalyst.dl.utils.wizard.Wizard[source]¶
- Bases: - object- Class for Catalyst Config API Wizard. - The instance of this class will be created and called from cli command: - catalyst-dl init --interactive.- With help of this Wizard user will be able to setup pipeline from available templates and make choices of what predefined classes to use in different parts of pipeline. 
Registry¶
- 
catalyst.dl.registry.Callback(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present 
 
- 
catalyst.dl.registry.Criterion(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present 
 
- 
catalyst.dl.registry.Optimizer(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present 
 
- 
catalyst.dl.registry.Scheduler(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present 
 
- 
catalyst.dl.registry.Module(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present 
 
- 
catalyst.dl.registry.Model(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present 
 
- 
catalyst.dl.registry.Sampler(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present 
 
- 
catalyst.dl.registry.Transform(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present 
 
- 
catalyst.dl.registry.Experiment(factory: Union[Type, Callable[[...], Any]] = None, *factories: Union[Type, Callable[[...], Any]], name: str = None, **named_factories: Union[Type, Callable[[...], Any]]) → Union[Type, Callable[[...], Any]]¶
- Adds factory to registry with it’s - __name__attribute or provided name. Signature is flexible.- Parameters
- factory – Factory instance 
- factories – More instances 
- name – Provided name for first instance. Use only when pass single instance. 
- named_factories – Factory and their names as kwargs 
 
- Returns
- First factory passed 
- Return type
- Factory 
- Raises
- RegistryException – if factory with provided name is already present