Skip to content

Commit

Permalink
fix Neptune logger creating multiple experiments when gpus > 1 (#3256)
Browse files Browse the repository at this point in the history
* DP device fix

* potential fix

* fix merge

* update tests

Co-authored-by: Adrian Wälchli <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
  • Loading branch information
3 people authored and tchaton committed Feb 4, 2021
1 parent 1ba9659 commit a4f7497
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
2 changes: 1 addition & 1 deletion pytorch_lightning/loggers/neptune.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ def __init__(
self._prefix = prefix
self._kwargs = kwargs
self.experiment_id = experiment_id
self._experiment = self._create_or_get_experiment()
self._experiment = None

log.info(f'NeptuneLogger will work in {"offline" if self.offline_mode else "online"} mode')

Expand Down
10 changes: 6 additions & 4 deletions tests/loggers/test_neptune.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ def test_neptune_online(neptune):
# It's important to check if the internal variable _experiment was initialized in __init__.
# Calling logger.experiment would cause a side-effect of initializing _experiment,
# if it wasn't already initialized.
assert logger._experiment is None
_ = logger.experiment
assert logger._experiment == created_experiment
assert logger.name == created_experiment.name
assert logger.version == created_experiment.id
Expand All @@ -37,10 +39,9 @@ def test_neptune_online(neptune):
@patch('pytorch_lightning.loggers.neptune.neptune')
def test_neptune_existing_experiment(neptune):
logger = NeptuneLogger(experiment_id='TEST-123')

neptune.Session.with_default_backend().get_project().get_experiments.assert_called_once_with(id='TEST-123')

neptune.Session.with_default_backend().get_project().get_experiments.assert_not_called()
experiment = logger.experiment
neptune.Session.with_default_backend().get_project().get_experiments.assert_called_once_with(id='TEST-123')
assert logger.experiment_name == experiment.get_system_properties()['name']
assert logger.params == experiment.get_parameters()
assert logger.properties == experiment.get_properties()
Expand All @@ -50,7 +51,8 @@ def test_neptune_existing_experiment(neptune):
@patch('pytorch_lightning.loggers.neptune.neptune')
def test_neptune_offline(neptune):
logger = NeptuneLogger(offline_mode=True)

neptune.Session.assert_not_called()
_ = logger.experiment
neptune.Session.assert_called_once_with(backend=neptune.OfflineBackend())
assert logger.experiment == neptune.Session().get_project().create_experiment()

Expand Down

0 comments on commit a4f7497

Please sign in to comment.