catalyst-team / segmentation

Catalyst.Segmentation
https://github.com/catalyst-team/catalyst
Apache License 2.0
28 stars 10 forks source link

Bump catalyst[cv] from 20.3 to 20.3.3 in /requirements #33

Closed dependabot-preview[bot] closed 4 years ago

dependabot-preview[bot] commented 4 years ago

Bumps catalyst[cv] from 20.3 to 20.3.3.

Release notes

Sourced from catalyst[cv]'s releases.

Catalyst 20.03.1

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

... (truncated)
Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in the `.dependabot/config.yml` file in this repo: - Update frequency - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)