Skip to content

Commit 1c6cfdb

Browse files
authored
Add logger property (#1372)
* added logger property for all loggers, except mlflow * added logger property for mlflow * added NotImplementedError in case if internal logger is unavailable * updated CHANGELOG.md
1 parent 2b5d944 commit 1c6cfdb

File tree

8 files changed

+41
-1
lines changed

8 files changed

+41
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
99
### Added
1010

1111
- MNIST dataset for SSL banchmark ([#1368](https://github.com/catalyst-team/catalyst/pull/1368))
12+
- logger property for logging customization ([#1372](https://github.com/catalyst-team/catalyst/pull/1372))
1213

1314
### Changed
1415

catalyst/core/logger.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Dict
1+
from typing import Any, Dict
22

33
import numpy as np
44

@@ -22,6 +22,15 @@ def __init__(self, log_batch_metrics: bool, log_epoch_metrics: bool) -> None:
2222
self._log_batch_metrics = log_batch_metrics
2323
self._log_epoch_metrics = log_epoch_metrics
2424

25+
@property
26+
def logger(self) -> Any:
27+
"""Internal logger/experiment/etc. from the monitoring system. # noqa: DAR401
28+
29+
Returns: # noqa: DAR201, DAR202
30+
Any: internal logger/experiment/etc. from the monitoring system.
31+
"""
32+
raise NotImplementedError
33+
2534
@property
2635
def log_batch_metrics(self) -> bool:
2736
"""Boolean flag to log batch metrics.

catalyst/loggers/comet.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ def __init__(
117117
if tags is not None:
118118
self.experiment.add_tags(tags)
119119

120+
@property
121+
def logger(self):
122+
"""Internal logger/experiment/etc. from the monitoring system."""
123+
return self.experiment
124+
120125
def _get_experiment(self, mode, experiment_id=None):
121126
if mode == "offline":
122127
if experiment_id is not None:

catalyst/loggers/csv.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ def __init__(self, logdir: str, use_logdir_postfix: bool = False):
7979
self.loggers = {}
8080
os.makedirs(self.logdir, exist_ok=True)
8181

82+
@property
83+
def logger(self):
84+
"""Internal logger/experiment/etc. from the monitoring system."""
85+
return self.loggers
86+
8287
def _make_header(self, metrics: Dict[str, float], loader_key: str):
8388
log_line_header = "step,"
8489
for metric in sorted(metrics.keys()):

catalyst/loggers/mlflow.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,11 @@ def __init__(
159159
mlflow.set_experiment(self.experiment)
160160
_get_or_start_run(run_name=self.run)
161161

162+
@property
163+
def logger(self):
164+
"""Internal logger/experiment/etc. from the monitoring system."""
165+
return mlflow
166+
162167
@staticmethod
163168
def _log_metrics(metrics: Dict[str, float], step: int, loader_key: str, suffix=""):
164169
for key, value in metrics.items():

catalyst/loggers/neptune.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,11 @@ def __init__(
152152
except (ImportError, NameError, AttributeError):
153153
pass
154154

155+
@property
156+
def logger(self):
157+
"""Internal logger/experiment/etc. from the monitoring system."""
158+
return self.run
159+
155160
def _log_metrics(self, metrics: Dict[str, float], neptune_path: str, step: int):
156161
for key, value in metrics.items():
157162
self.run[f"{neptune_path}/{key}"].log(value=float(value), step=step)

catalyst/loggers/tensorboard.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ def __init__(
9494
self.loggers = {}
9595
os.makedirs(self.logdir, exist_ok=True)
9696

97+
@property
98+
def logger(self):
99+
"""Internal logger/experiment/etc. from the monitoring system."""
100+
return self.loggers
101+
97102
def _check_loader_key(self, loader_key: str):
98103
if loader_key not in self.loggers.keys():
99104
logdir = os.path.join(self.logdir, f"{loader_key}")

catalyst/loggers/wandb.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ def __init__(
9494
project=self.project, name=self.name, entity=self.entity, allow_val_change=True
9595
)
9696

97+
@property
98+
def logger(self):
99+
"""Internal logger/experiment/etc. from the monitoring system."""
100+
return self.run
101+
97102
def _log_metrics(self, metrics: Dict[str, float], step: int, loader_key: str, prefix=""):
98103
for key, value in metrics.items():
99104
self.run.log({f"{key}_{prefix}/{loader_key}": value}, step=step)

0 commit comments

Comments
 (0)