Skip to content

Commit

Permalink
Core/design (#715)
Browse files Browse the repository at this point in the history
* ReduceLROnPlateau fix, logging and acrhitecture improvements

* type -> scope renaming; alchemy update

* docs update
  • Loading branch information
Scitator committed Mar 22, 2020
1 parent f41b380 commit abfbda7
Show file tree
Hide file tree
Showing 11 changed files with 76 additions and 132 deletions.
19 changes: 7 additions & 12 deletions catalyst/contrib/dl/callbacks/alchemy.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from catalyst import utils
from catalyst.core import (
Callback, CallbackNode, CallbackOrder, CallbackType, State
Callback, CallbackNode, CallbackOrder, CallbackScope, State
)


Expand Down Expand Up @@ -57,7 +57,7 @@ def __init__(
super().__init__(
order=CallbackOrder.Logging,
node=CallbackNode.Master,
type=CallbackType.Experiment,
scope=CallbackScope.Experiment,
)
self.metrics_to_log = metric_names
self.log_on_batch_end = log_on_batch_end
Expand Down Expand Up @@ -91,13 +91,14 @@ def _log_metrics(
if name in metrics:
metric_name = f"{name}/{mode}{suffix}"
metric_value = metrics[name]
self.logger.log_scalar(metric_name, metric_value)
self.logger.log_scalar(
name=metric_name,
value=metric_value,
step=step,
)

def on_batch_end(self, state: State):
"""Translate batch metrics to Alchemy"""
if state.logdir is None:
return

if self.log_on_batch_end:
mode = state.loader_name
metrics_ = state.batch_metrics
Expand All @@ -110,9 +111,6 @@ def on_batch_end(self, state: State):

def on_loader_end(self, state: State):
"""Translate loader metrics to Alchemy"""
if state.logdir is None:
return

if self.log_on_epoch_end:
mode = state.loader_name
metrics_ = state.loader_metrics
Expand All @@ -125,9 +123,6 @@ def on_loader_end(self, state: State):

def on_epoch_end(self, state: State):
"""Translate epoch metrics to Alchemy"""
if state.logdir is None:
return

extra_mode = "_base"
splitted_epoch_metrics = utils.split_dict_to_subdicts(
dct=state.epoch_metrics,
Expand Down
4 changes: 2 additions & 2 deletions catalyst/contrib/dl/callbacks/neptune.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import neptune

from catalyst.core import (
Callback, CallbackNode, CallbackOrder, CallbackType, State
Callback, CallbackNode, CallbackOrder, CallbackScope, State
)


Expand Down Expand Up @@ -79,7 +79,7 @@ def __init__(
super().__init__(
order=CallbackOrder.Logging,
node=CallbackNode.Master,
type=CallbackType.Experiment,
scope=CallbackScope.Experiment,
)
self.metrics_to_log = metric_names
self.log_on_batch_end = log_on_batch_end
Expand Down
2 changes: 1 addition & 1 deletion catalyst/core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# runner

from .state import State
from .callback import Callback, CallbackOrder, CallbackNode, CallbackType
from .callback import Callback, CallbackOrder, CallbackNode, CallbackScope
from .callbacks import *
from .experiment import _Experiment
from .runner import _Runner
23 changes: 12 additions & 11 deletions catalyst/core/callback.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
from .state import State


class CallbackNode(IntFlag):
All = 0
Master = 1
Worker = 2


class CallbackOrder(IntFlag):
Internal = 0 # pytorch
Metric = 20 # pytorch
Expand All @@ -16,13 +22,7 @@ class CallbackOrder(IntFlag):
External = 200 # numpy


class CallbackNode(IntFlag):
All = 0
Master = 1
Worker = 2


class CallbackType(IntFlag):
class CallbackScope(IntFlag):
Stage = 0
Experiment = 1

Expand Down Expand Up @@ -55,14 +55,14 @@ def __init__(
self,
order: int,
node: int = CallbackNode.All,
type: int = CallbackType.Stage,
scope: int = CallbackScope.Stage,
):
"""
For order see ``CallbackOrder`` class
"""
self.order = order
self.node = node
self.type = type
self.order = order
self.scope = scope

def on_stage_start(self, state: "State"):
pass
Expand Down Expand Up @@ -94,6 +94,7 @@ def on_exception(self, state: "State"):

__all__ = [
"Callback",
"CallbackOrder",
"CallbackNode",
"CallbackOrder",
"CallbackScope",
]
4 changes: 2 additions & 2 deletions catalyst/core/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from catalyst.utils.tools.typing import (
Criterion, Device, Model, Optimizer, Scheduler
)
from .callback import Callback, CallbackNode, CallbackType
from .callback import Callback, CallbackNode, CallbackScope
from .callbacks import ExceptionCallback
from .experiment import _Experiment
from .state import State
Expand Down Expand Up @@ -161,7 +161,7 @@ def _get_state(
and self.state is not None \
and self.state.callbacks is not None:
for key, value in self.state.callbacks.items():
if value.type == CallbackType.Experiment:
if value.scope == CallbackScope.Experiment:
callbacks[key] = value
callbacks = utils.process_callbacks(callbacks)

Expand Down
1 change: 1 addition & 0 deletions catalyst/utils/meters/ppv_tpr_f1_meter.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ def add(self, output, target):
"""
Thresholds predictions and calculates the true positives,
false positives, and false negatives in comparison to the target.
Args:
output (torch.Tensor):
prediction after activation function
Expand Down
10 changes: 0 additions & 10 deletions docs/api/core.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,6 @@ Callbacks
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.core.callbacks.phase
:members:
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.core.callbacks.scheduler
:members:
:undoc-members:
Expand All @@ -84,11 +79,6 @@ Callbacks
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.core.callbacks.wrappers
:members:
:undoc-members:
:show-inheritance:


Registry
--------------------
Expand Down
30 changes: 1 addition & 29 deletions docs/api/data.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,6 @@ For example:
Augmentor
--------------------

Legacy classes for augmentations.
For modern Catalyst use `albumentations`_.

.. _albumentations: https://github.com/albu/albumentations

.. automodule:: catalyst.data.augmentor
:members:
:undoc-members:
Expand Down Expand Up @@ -58,30 +53,7 @@ Reader
Readers are the abstraction for your dataset. They can open an elem from the dataset and transform it to data, needed by your network.
For example open image by path, or read string and tokenize it.


.. currentmodule:: catalyst.data.reader

.. autoclass:: ReaderSpec
:members:
:undoc-members:
:special-members: __init__, __call__

.. autoclass:: LambdaReader
:members:
:undoc-members:
:special-members: __init__, __call__

.. autoclass:: ScalarReader
:members:
:undoc-members:
:special-members: __init__, __call__

.. autoclass:: ImageReader
:members:
:undoc-members:
:special-members: __init__, __call__

.. autoclass:: ReaderCompose
.. automodule:: catalyst.data.reader
:members:
:undoc-members:
:special-members: __init__, __call__
Expand Down
42 changes: 28 additions & 14 deletions docs/api/dl.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ DL
Core
--------------------

.. automodule:: catalyst.dl.core.callback
:members:
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.core.experiment
:members:
:undoc-members:
Expand All @@ -24,15 +19,20 @@ Core
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.core.state
.. automodule:: catalyst.dl.core.callback
:members:
:undoc-members:
:show-inheritance:


Callbacks
--------------------


.. automodule:: catalyst.dl.callbacks.confusion_matrix
:members:
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.callbacks.gan
:members:
:undoc-members:
Expand All @@ -48,11 +48,21 @@ Callbacks
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.callbacks.phase
:members:
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.callbacks.scheduler
:members:
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.callbacks.wrappers
:members:
:undoc-members:
:show-inheritance:

Metrics
~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -105,6 +115,11 @@ Experiment
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.experiment.gan
:members:
:undoc-members:
:show-inheritance:


Runner
--------------------
Expand All @@ -121,14 +136,18 @@ Runner
:show-inheritance:


Utils
State
--------------------

.. automodule:: catalyst.dl.utils.pipelines
.. automodule:: catalyst.dl.state.gan
:members:
:undoc-members:
:show-inheritance:


Utils
--------------------

.. automodule:: catalyst.dl.utils.torch
:members:
:undoc-members:
Expand All @@ -139,11 +158,6 @@ Utils
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.utils.visualization
:members:
:undoc-members:
:show-inheritance:

.. automodule:: catalyst.dl.utils.wizard
:members:
:undoc-members:
Expand Down

0 comments on commit abfbda7

Please sign in to comment.