Skip to content

Commit d63f959

Browse files
feat: Updated log_hyperparams() to better support nested mappings and dataclasses (#3)
1 parent 86b1d3d commit d63f959

File tree

1 file changed

+2
-21
lines changed

1 file changed

+2
-21
lines changed

src/lightning/pytorch/loggers/neptune.py

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
log = logging.getLogger(__name__)
4444

45-
_NEPTUNE_SCALE_AVAILABLE = RequirementCache("neptune-scale")
45+
_NEPTUNE_SCALE_AVAILABLE = RequirementCache("neptune-scale>=0.18.0")
4646
_NEPTUNE_AVAILABLE = RequirementCache("neptune>=1.0")
4747

4848
if TYPE_CHECKING:
@@ -963,33 +963,14 @@ def log_hyperparams(self, params: Union[dict[str, Any], Namespace]) -> None:
963963
neptune_scale_logger.log_hyperparams(PARAMS)
964964
965965
"""
966-
from datetime import datetime
967966

968967
params = _convert_params(params)
969968
params = _sanitize_callable_params(params)
970969

971970
parameters_key = self.PARAMETERS_KEY
972971
parameters_key = self._construct_path_with_prefix(parameters_key)
973972

974-
allowed_datatypes = [int, float, str, datetime, bool, list, set]
975-
976-
def flatten(d: dict, prefix: str = "") -> dict[str, Any]:
977-
"""Flatten a nested dictionary by concatenating keys with '/'."""
978-
flattened = {}
979-
for key, value in d.items():
980-
new_key = f"{prefix}/{key}" if prefix else key
981-
if isinstance(value, dict):
982-
flattened.update(flatten(value, new_key))
983-
elif type(value) in allowed_datatypes:
984-
flattened[new_key] = value
985-
else:
986-
flattened[new_key] = str(value)
987-
return flattened
988-
989-
flattened = flatten(params)
990-
991-
batched_configs = {f"{parameters_key}/{key}": value for key, value in flattened.items()}
992-
self.run.log_configs(batched_configs)
973+
self.run.log_configs({parameters_key: params}, flatten=True, cast_unsupported=True)
993974

994975
@override
995976
@rank_zero_only

0 commit comments

Comments
 (0)