Merge pull request #1630 from PyTorchLightning/hparams_logger

Allow metrics logged together with hparams
This commit is contained in:
William Falcon
2020-04-27 07:25:12 -04:00
committed by GitHub
3 changed files with 23 additions and 2 deletions
+2
View File
@@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
### Added
### Changed
- Allow logging of metrics togther with hparams ([#1630](https://github.com/PyTorchLightning/pytorch-lightning/pull/1630))
### Deprecated
+5 -2
View File
@@ -101,7 +101,8 @@ class TensorBoardLogger(LightningLoggerBase):
return self._experiment
@rank_zero_only
def log_hyperparams(self, params: Union[Dict[str, Any], Namespace]) -> None:
def log_hyperparams(self, params: Union[Dict[str, Any], Namespace],
metrics: Optional[Dict[str, Any]] = None) -> None:
params = self._convert_params(params)
params = self._flatten_dict(params)
sanitized_params = self._sanitize_params(params)
@@ -114,7 +115,9 @@ class TensorBoardLogger(LightningLoggerBase):
)
else:
from torch.utils.tensorboard.summary import hparams
exp, ssi, sei = hparams(sanitized_params, {})
if metrics is None:
metrics = {}
exp, ssi, sei = hparams(sanitized_params, metrics)
writer = self.experiment._get_file_writer()
writer.add_summary(exp)
writer.add_summary(ssi)
+16
View File
@@ -77,3 +77,19 @@ def test_tensorboard_log_hyperparams(tmpdir):
"layer": torch.nn.BatchNorm1d
}
logger.log_hyperparams(hparams)
def test_tensorboard_log_hparams_and_metrics(tmpdir):
logger = TensorBoardLogger(tmpdir)
hparams = {
"float": 0.3,
"int": 1,
"string": "abc",
"bool": True,
"dict": {'a': {'b': 'c'}},
"list": [1, 2, 3],
"namespace": Namespace(foo=Namespace(bar='buzz')),
"layer": torch.nn.BatchNorm1d
}
metrics = {'abc': torch.tensor([0.54])}
logger.log_hyperparams(hparams, metrics)