catalyst

Accelerated deep learning R&D

APACHE-2.0 License

Downloads
34.8K
Stars
3.2K
Committers
103
catalyst -

Published by bagxi over 3 years ago

catalyst - Catalyst 20.12

Published by Scitator almost 4 years ago

[20.12] - 2020-12-20

Added

  • CVS Logger (#1005)
  • DrawMasksCallback (#999)
  • (#1002)
    • a few docs
  • (#998)
    • reciprocal_rank metric
    • unified recsys metrics preprocessing
  • (#1018)
    • readme examples for all supported metrics under catalyst.metrics
    • wrap_metric_fn_with_activation for model outputs wrapping with activation
    • extra tests for metrics
  • (#1039)
    • per_class=False option for metrics callbacks
    • PrecisionCallack, RecallCallack for multiclass problems
    • extra docs

Changed

  • docs update (#1000)
  • AMPOptimizerCallback and OptimizerCallback were merged (#1007)
  • (#1017)
    • fixed bug in SchedulerCallback
    • Log LRs and momentums for all param groups, not only for the first one
  • (#1002)
    • tensorboard, ipython, matplotlib, pandas, scikit-learn moved to optional requirements
    • PerplexityMetricCallback moved to catalyst.callbacks from catalyst.contrib.callbacks
    • PerplexityMetricCallback renamed to PerplexityCallback
    • catalyst.contrib.utils.confusion_matrix renamed to catalyst.contrib.utils.torch_extra
    • many parts of catalyst.data moved to catalyst.contrib.data
    • catalyst.data.scripts moved to catalyst.contrib.scripts
    • catalyst.utils, catalyst.data.utils and catalyst.contrib.utils restructured
    • ReaderSpec renamed to IReader
    • SupervisedExperiment renamed to AutoCallbackExperiment
  • gain functions renamed for dcg/ndcg metrics (#998)
  • (#1014)
    • requirements respecification: catalyst[cv], catalyst[dev], catalyst[log], catalyst[ml], catalyst[nlp],catalyst[tune]
    • settings respecification
    • extra tests for settings
    • contrib refactoring
  • iou and dice metrics moved to per-class computation (#1031)

Removed

  • (#1002)
    • KNNMetricCallback
    • sklearn mode for ConfusionMatrixLogger
    • catalyst.data.utils
    • unnecessary catalyst.tools.meters
    • todos for unnecessary docs
  • (#1014)
    • transformers-based contrib (too unstable)
  • (#1018)
    • ClasswiseIouCallback/ClasswiseJaccardCallback as deprecated on (should be refactored in future releases)

Fixed

  • prevented modifying config during the experiment and runner initialization (#1004)
  • a few test for RecSys MAP computation (#1018)
  • leave batch size the same for default distributed training (#1023)
  • (#1032)
    • Apex: now you can use apex for multiple models training
    • Apex: DataParallel is allowed for opt_level other than "O1"
catalyst - Catalyst 20.11

Published by Scitator almost 4 years ago

[20.11] - 2020-11-12

Added

Changed

  • update Catalyst version to 20.10.1 for tutorials (#967)
  • added link to dl-course (#967)
  • IRunner -> simplified IRunner (#984)
  • docs were restructured (#985)
  • set_global_seed moved from utils.seed to utils.misc (#986)

Removed

  • several deprecated tutorials (#967)
  • several deprecated func from utils.misc (#986)

Fixed

  • BatchTransformCallback - add nn.Module transforms support (#951)
  • moved to contiguous view for accuracy computation (#982)
  • fixed torch warning on optimizer.py:140 (#979)
catalyst - Catalyst 20.10.1

Published by Scitator almost 4 years ago

[20.10.1] - 2020-10-15

Added

  • MRR metrics calculation (#886)
  • docs for MetricCallbacks (#947)
  • SoftMax, CosFace, ArcFace layers to contrib (#939)
  • ArcMargin layer to contrib (#957)
  • AdaCos to contrib (#958)
  • Manual SWA to utils (#945)

Changed

  • fixed path to CHANGELOG.md file and add information about unit test to PULL_REQUEST_TEMPLATE.md ([#955])(https://github.com/catalyst-team/catalyst/pull/955)
  • catalyst-dl tune config specification - now optuna params are grouped under study_params (#947)
  • IRunner._prepare_for_stage logic moved to IStageBasedRunner.prepare_for_stage (#947)
    • now we create components in the following order: datasets/loaders, model, criterion, optimizer, scheduler, callbacks
  • MnistMLDataset and MnistQGDataset data split logic - now targets of the datasets are disjoint (#949)
  • architecture redesign (#953)
    • experiments, runners, callbacks grouped by primitives under catalyst.experiments/catalyst.runners/catalyst.callbacks respectively
    • settings and typing moved from catalyst.tools.* to catalyst.*
    • utils moved from catalyst.*.utils to catalyst.utils
  • swa moved to catalyst.utils (#963)

Removed

Fixed

  • AMPOptimizerCallback - fix grad clip fn support (#948)
  • removed deprecated docs types (#947) (#952)
  • docs for a few files (#952)
  • extra backward compatibility fixes (#963)
catalyst - Catalyst 20.09.1

Published by Scitator almost 4 years ago

[20.09.1] - 2020-09-25

Added

  • Runner registry support for Config API (#936)
  • catalyst-dl tune command - Optuna with Config API integration for AutoML hyperparameters optimization (#937)
  • OptunaPruningCallback alias for OptunaCallback (#937)
  • AdamP and SGDP to catalyst.contrib.nn.criterion (#942)

Changed

  • Config API components preparation logic moved to utils.prepare_config_api_components (#936)

Removed

Fixed

  • Logging double logging :) (#936)
  • CMCCallback (#941)
catalyst - Catalyst 20.09

Published by Scitator almost 4 years ago

[20.09] - 2020-09-07

Added

  • MovieLens dataset loader (#903)
  • force and bert-level keywords to catalyst-data text2embedding (#917)
  • OptunaCallback to catalyst.contrib (#915)
  • DynamicQuantizationCallback and catalyst-dl quantize script for fast quantization of your model (#890)
  • Multi-scheduler support for multi-optimizer case (#923)
  • Native mixed-precision training support (#740)
  • OptiomizerCallback - flag use_fast_zero_grad for faster (and hacky) version of optimizer.zero_grad() (#927)
  • IOptiomizerCallback, ISchedulerCallback, ICheckpointCallback, ILoggerCallback as core abstractions for Callbacks (#933)
  • flag USE_AMP for PyTorch AMP usage (#933)

Changed

  • Pruning moved to catalyst.dl (#933)
  • default USE_APEX changed to 0 (#933)

Removed

Fixed

  • autoresume option for Config API (#907)
  • a few issues with TF projector (#917)
  • batch sampler speed issue (#921)
  • add apex key-value optimizer support (#924)
  • runtime warning for PyTorch 1.6 (920)
  • Apex synbn usage (920)
  • Catalyst dependency on system git (922)
catalyst - Catalyst 20.08

Published by Scitator almost 4 years ago

[20.08] - 2020-08-09

Added

  • CMCScoreCallback (#880)
  • kornia augmentations BatchTransformCallback (#862)
  • average_precision and mean_average_precision metrics (#883)
  • MultiLabelAccuracyCallback, AveragePrecisionCallback and MeanAveragePrecisionCallback callbacks (#883)
  • minimal examples for multiclass and multilabel classification (#883)
  • experimental TPU support (#893)
  • add Imagenette, Imagewoof, and Imagewang datasets (#902)
  • IMetricCallback, IBatchMetricCallback, ILoaderMetricCallback, BatchMetricCallback, LoaderMetricCallback abstractions (#897)
  • HardClusterSampler inbatch sampler (#888)

Changed

  • all registries merged to one catalyst.registry (#883)
  • mean_average_precision logic merged with average_precision (#897)
  • all imports moved to absolute (#905)
  • catalyst.contrib.data merged to catalyst.data (#905)
  • {breaking} Catalyst transform ToTensor was renamed to ImageToTensor (#905)
  • TracerCallback moved to catalyst.dl (#905)
  • ControlFlowCallback, PeriodicLoaderCallback moved to catalyst.core (#905)

Removed

  • average_accuracy and mean_average_accuracy metrics (#883)
  • MultiMetricCallback abstraction (#897)

Fixed

  • utils.tokenize_text typo with punctuation (#880)
  • ControlFlowCallback logic (#892)
  • docs (#897)
catalyst - Catalyst 20.07

Published by Scitator almost 4 years ago

[20.07] - 2020-07-06

Added

  • log parameter to WandbLogger (#836)
  • hparams experiment property (#839)
  • add docs build on push to master branch (#844)
  • WrapperCallback and ControlFlowCallback (#842)
  • BatchOverfitCallback (#869)
  • overfit flag for Config API (#869)
  • InBatchSamplers: AllTripletsSampler and HardTripletsSampler (#825)

Changed

  • Renaming (#837)
    • SqueezeAndExcitation -> cSE
    • ChannelSqueezeAndSpatialExcitation -> sSE
    • ConcurrentSpatialAndChannelSqueezeAndChannelExcitation -> scSE
    • _MetricCallback -> IMetricCallback
    • dl.Experiment.process_loaders -> dl.Experiment._get_loaders
  • LRUpdater become abstract class (#837)
  • calculate_confusion_matrix_from_arrays changed params order (#837)
  • dl.Runner.predict_loader uses _prepare_inner_state and cleans experiment (#863)
  • toml to the dependencies (#872)

Removed

  • crc32c dependency (#872)

Fixed

  • workflows/deploy_push.yml failed to push some refs (#864)
  • .dependabot/config.yml contained invalid details (#781)
  • LanguageModelingDataset (#841)
  • global_* counters in Runner (#858)
  • EarlyStoppingCallback considers first epoch as bad (#854)
  • annoying numpy warning (#860)
  • PeriodicLoaderCallback overwrites best state (#867)
  • OneCycleLRWithWarmup (#851)
catalyst - Catalyst 20.06

Published by Scitator over 4 years ago

[20.06] - 2020-06-04

Added

  • Mergify (#831)
  • PerplexityMetricCallback (#819)
  • PeriodicLoaderRunnerCallback (#818)

Changed

  • docs structure were updated during (#822)
  • utils.process_components moved from utils.distributed to utils.components (#822)
  • catalyst.core.state.State merged to catalyst.core.runner._Runner (#823) (backward compatibility included)
    • catalyst.core.callback.Callback now works directly with catalyst.core.runner._Runner
    • state_kwargs renamed to stage_kwargs

Removed

Fixed

  • added missed dashes in docker perfixes (#828)

[20.05.1] - 2020-05-23

Added

  • Circle loss implementation (#802)
  • BatchBalanceSampler for metric learning and classification (#806)
  • CheckpointCallback: new argument load_on_stage_start which accepts str and Dict[str, str] (#797)
  • LanguageModelingDataset to catalyst[nlp] (#808)
  • Extra counters for batches, loaders and epochs (#809)
  • TracerCallback (#789)

Changed

  • CheckpointCallback: additional logic for argument load_on_stage_end - accepts str and Dict[str, str] (#797)
  • counters names for batches, loaders and epochs (#809)
  • utils.trace_model: changed logic - runner argument was changed to predict_fn (#789)
  • redesigned contrib.data and contrib.datasets (#820)
  • catalyst.utils.meters moved to catalyst.tools (#820)
  • catalyst.contrib.utils.tools.tensorboard moved to catalyst.contrib.tools (#820)

Removed

Fixed

catalyst - Catalyst 20.05.1

Published by Scitator over 4 years ago

catalyst - Catalyst 20.06rc1

Published by Scitator over 4 years ago

catalyst - Catalyst 20.05

Published by Scitator over 4 years ago

catalyst - Catalyst 20.03.1

Published by Scitator over 4 years ago

tl;dr

We finally organise Experiment-Runner-State-Callback as it should be.
We also have great documentation update!

Core

  1. Experiment - an abstraction that contains information about the experiment – a model, a criterion, an optimizer, a scheduler, and their hyperparameters. It also contains information about the data and transformations used. In general, the Experiment knows what you would like to run.

  2. Runner - a class that knows how to run an experiment. It contains all the logic of how to run the experiment, stages, epoch and batches.

  3. State - some intermediate storage between Experiment and Runner that saves the current state of the Experiments – model, criterion, optimizer, schedulers, metrics, loaders, callbacks, etc

  4. Callback - a powerful abstraction that lets you customize your experiment run logic. To give users maximum flexibility and extensibility we allow callback execution anywhere in the training loop

    on_stage_start
        on_epoch_start
           on_loader_start
               on_batch_start
               # ... 
           on_batch_end
        on_epoch_end
    on_stage_end
    
    on_exception
    

How to combine them together?

First of all - just read the docs for State, Experiment, Runner and Callback abstractions.
Long story short, State just saves everything during experiment and passes to every Callback in Experiment through Runner.run_event.
For example, usual case, for some custom metric implementation, all you need to do is

from catalyst.dl import Callback, State

class MyPureMetric(Callback):
  def on_batch_end(self, state: State):
    """To store batch-based metrics"""
    state.batch_metrics[{metric_name}] = metric_value

  def on_loader_end(self, state: State):
  	"""To store loader-based metrics"""
    state.loader_metrics[{metric_name}] = metric_value

  def on_epoch_end(self, state: State):
    """To store epoch-based metrics"""
    state.epoch_metrics[{metric_name}] = metric_value

There are coming many more Catalyst concepts, tutorials and docs in near future.

Callback updates

  • CheckRunCallback - allows you to check the pipeline correctness during long-run training
  • TimerCallback - enables / disables the calculation of the work speed of your training, like data time per batch, model time per batch, samples per second
  • MetricManagerCallback - transfers torch tensors to numpy and calculates statistics
  • ValidationManagerCallback - collects validation metrics and checks if it's the best epoch

Catalyst best practices

Working with Catalyst.DL it's better to import everything in straightforward way like

from catalyst.dl import SomethingGreat
from catalyst.dl import utils

utils.do_something_cool()

Breaking changes

  1. CriterionAggregatorCallback moved to catalyst.contrib and will be deprecated in 20.04 release.
  2. For SchedulerCallback reduce_metric was renamed to reduced_metric :)
  3. We have update metric recording mechanism for State-Callback,

Future work

During 20.03 -> 20.04 releases, we are going to deprecate all SomeContribRunner and transfer them to SomeContribLogger as more general purpose solution.

catalyst - 20.02.2

Published by Scitator over 4 years ago

Catalyst 20.02.2

Overall

DL

catalyst - Catalyst 19.11

Published by Scitator almost 5 years ago

Catalyst 19.10 -> 19.11

Achievements

NeurIPS 2019: Learn to Move - Walk Around, 2nd place

Overall

DL

RL

catalyst - Catalyst 19.10

Published by Scitator about 5 years ago

Catalyst 19.09 -> 19.10

Achievements

NeurIPS 2019: Recursion Cellular Image Classification

  • 4th place solution writeup
  • 8th place solution

Kaggle integration

Weights & Biases integration

Overall

DL

RL

catalyst - Catalyst 19.09

Published by Scitator about 5 years ago

Catalyst 19.08 -> 19.09

Ecosystem

We are happy to announce MLComp release – a distributed DAG (Directed acyclic graph) framework for machine learning with UI. Powered by Catalyst.Team.

We also release a detailed classification tutorial Open In Colab and comprehensive classification pipeline.

Slowly-slowly, more and more challenges are powered by catalyst https://github.com/catalyst-team/catalyst/pull/302.

We also update the licence to Apache 2.0, start the Patreon and even run catalyst-info repo!

And finally, we have integrate wandb to the catalyst, both DL & RL!

Overall

DL

RL

catalyst - Catalyst 19.08

Published by Scitator about 5 years ago

Catalyst 19.07 -> 19.08

Overall

DL

RL

catalyst - Catalyst 19.06.3

Published by Scitator over 5 years ago

Catalyst 19.06 -> 19.06.3

Overall

DL

RL


Breaking changes

  • UtilsFactory replaced with from catalyst.dl import utils
  • LossCallback replaced with CriterionCallback
Package Rankings
Top 1.53% on Pypi.org
Top 8.17% on Proxy.golang.org
Badges
Extracted from project README
CodeFactor Pipi version Docs Docker PyPI Status Twitter Telegram Slack Github contributors python python python os os os Open In Colab Open In Colab Open In Colab
Related Projects