From a6551bd1c01828d2b67d78ebb6e4f2651a40638e Mon Sep 17 00:00:00 2001 From: Etay Livne Date: Wed, 29 May 2024 08:58:32 +0300 Subject: [PATCH 1/3] fix: CometLogger now correctly identifies when to create new Experiment object --- src/lightning/pytorch/loggers/comet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lightning/pytorch/loggers/comet.py b/src/lightning/pytorch/loggers/comet.py index ccb6d62de866a..01c3088dac250 100644 --- a/src/lightning/pytorch/loggers/comet.py +++ b/src/lightning/pytorch/loggers/comet.py @@ -268,7 +268,7 @@ def experiment(self) -> Union["Experiment", "ExistingExperiment", "OfflineExperi self.logger.experiment.some_comet_function() """ - if self._experiment is not None: + if self._experiment is not None and self.experiment.alive: return self._experiment if self._future_experiment_key is not None: From a69dae14448959cf21633e10eec2efc3b144270e Mon Sep 17 00:00:00 2001 From: Etay Livne Date: Mon, 17 Jun 2024 14:51:50 +0300 Subject: [PATCH 2/3] fixed typo --- src/lightning/pytorch/loggers/comet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lightning/pytorch/loggers/comet.py b/src/lightning/pytorch/loggers/comet.py index 01c3088dac250..277af5c85f539 100644 --- a/src/lightning/pytorch/loggers/comet.py +++ b/src/lightning/pytorch/loggers/comet.py @@ -268,7 +268,7 @@ def experiment(self) -> Union["Experiment", "ExistingExperiment", "OfflineExperi self.logger.experiment.some_comet_function() """ - if self._experiment is not None and self.experiment.alive: + if self._experiment is not None and self._experiment.alive: return self._experiment if self._future_experiment_key is not None: From 4c1b9ffde6dc0fcb81c10af7fe871e7042568a06 Mon Sep 17 00:00:00 2001 From: Etay Livne Date: Mon, 17 Jun 2024 14:56:35 +0300 Subject: [PATCH 3/3] added test to verify that the Experiment object of a CometLogger resets if .alive is False --- tests/tests_pytorch/loggers/test_comet.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/tests_pytorch/loggers/test_comet.py b/tests/tests_pytorch/loggers/test_comet.py index 791089c47cbbe..e467c63543ede 100644 --- a/tests/tests_pytorch/loggers/test_comet.py +++ b/tests/tests_pytorch/loggers/test_comet.py @@ -66,6 +66,20 @@ def test_comet_logger_online(comet_mock): api.assert_called_once_with("rest") +@mock.patch.dict(os.environ, {}) +def test_comet_experiment_resets_if_not_alive(comet_mock): + """Test that the CometLogger creates a new experiment if the old one is not alive anymore.""" + logger = CometLogger() + assert logger._experiment is None + alive_experiment = Mock(alive=True) + logger._experiment = alive_experiment + assert logger.experiment is alive_experiment + + unalive_experiment = Mock(alive=False) + logger._experiment = unalive_experiment + assert logger.experiment is not unalive_experiment + + @mock.patch.dict(os.environ, {}) def test_comet_logger_no_api_key_given(comet_mock): """Test that CometLogger fails to initialize if both api key and save_dir are missing."""