Skip to content

Commit dfb5aee

Browse files
authored
Merge fdcecb9 into a6c98c4
2 parents a6c98c4 + fdcecb9 commit dfb5aee

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
122122
- Fixed `Trainer` not resetting `lightning_optimizers` when calling `Trainer.fit()` multiple times ([#6372](https://github.com/PyTorchLightning/pytorch-lightning/pull/6372))
123123

124124

125+
- Fixed `DummyLogger.log_hyperparams` raising a `TypeError` when running with `fast_dev_run=True` ([#6398](https://github.com/PyTorchLightning/pytorch-lightning/pull/6398))
126+
127+
125128
## [1.2.2] - 2021-03-02
126129

127130
### Added

pytorch_lightning/loggers/base.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -279,12 +279,14 @@ def _sanitize_params(params: Dict[str, Any]) -> Dict[str, Any]:
279279
return params
280280

281281
@abstractmethod
282-
def log_hyperparams(self, params: argparse.Namespace):
282+
def log_hyperparams(self, params: argparse.Namespace, *args, **kwargs):
283283
"""
284284
Record hyperparameters.
285285
286286
Args:
287287
params: :class:`~argparse.Namespace` containing the hyperparameters
288+
args: Optional positional arguments, depends on the specific logger being used
289+
kwargs: Optional keywoard arguments, depends on the specific logger being used
288290
"""
289291

290292
def log_graph(self, model: LightningModule, input_array=None) -> None:
@@ -418,30 +420,29 @@ def nop(*args, **kw):
418420
def __getattr__(self, _):
419421
return self.nop
420422

421-
def __getitem__(self, idx):
422-
# enables self.logger[0].experiment.add_image
423-
# and self.logger.experiment[0].add_image(...)
423+
def __getitem__(self, idx) -> "DummyExperiment":
424+
# enables self.logger.experiment[0].add_image(...)
424425
return self
425426

426427

427428
class DummyLogger(LightningLoggerBase):
428-
""" Dummy logger for internal use. Is usefull if we want to disable users
429-
logger for a feature, but still secure that users code can run """
429+
"""
430+
Dummy logger for internal use. It is useful if we want to disable user's
431+
logger for a feature, but still ensure that user code can run
432+
"""
430433

431434
def __init__(self):
432435
super().__init__()
433436
self._experiment = DummyExperiment()
434437

435438
@property
436-
def experiment(self):
439+
def experiment(self) -> DummyExperiment:
437440
return self._experiment
438441

439-
@rank_zero_only
440-
def log_metrics(self, metrics, step):
442+
def log_metrics(self, *args, **kwargs) -> None:
441443
pass
442444

443-
@rank_zero_only
444-
def log_hyperparams(self, params):
445+
def log_hyperparams(self, *args, **kwargs) -> None:
445446
pass
446447

447448
@property
@@ -452,7 +453,8 @@ def name(self):
452453
def version(self):
453454
pass
454455

455-
def __getitem__(self, idx):
456+
def __getitem__(self, idx) -> "DummyLogger":
457+
# enables self.logger[0].experiment.add_image(...)
456458
return self
457459

458460

tests/loggers/test_base.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,15 +229,24 @@ def log_metrics(self, metrics, step):
229229

230230

231231
def test_dummyexperiment_support_indexing():
232+
""" Test that the DummyExperiment can imitate indexing the experiment in a LoggerCollection. """
232233
experiment = DummyExperiment()
233234
assert experiment[0] == experiment
234235

235236

236237
def test_dummylogger_support_indexing():
238+
""" Test that the DummyLogger can imitate indexing of a LoggerCollection. """
237239
logger = DummyLogger()
238240
assert logger[0] == logger
239241

240242

243+
def test_dummylogger_noop_method_calls():
244+
""" Test that the DummyLogger methods can be called with arbitrary arguments. """
245+
logger = DummyLogger()
246+
logger.log_hyperparams("1", 2, three="three")
247+
logger.log_metrics("1", 2, three="three")
248+
249+
241250
def test_np_sanitization():
242251

243252
class CustomParamsLogger(CustomLogger):

0 commit comments

Comments
 (0)