def experiment( self ) -> Union[CometExperiment, CometExistingExperiment, CometOfflineExperiment]: r""" Actual Comet object. To use Comet features in your :class:`~pytorch_lightning.core.module.LightningModule` do the following. Example:: self.logger.experiment.some_comet_function() """ if self._experiment is not None: return self._experiment if self._future_experiment_key is not None: os.environ["COMET_EXPERIMENT_KEY"] = self._future_experiment_key try: if self.mode == "online": if self._experiment_key is None: self._experiment = CometExperiment( api_key=self.api_key, project_name=self._project_name, **self._kwargs) self._experiment_key = self._experiment.get_key() else: self._experiment = CometExistingExperiment( api_key=self.api_key, project_name=self._project_name, previous_experiment=self._experiment_key, **self._kwargs, ) else: self._experiment = CometOfflineExperiment( offline_directory=self.save_dir, project_name=self._project_name, **self._kwargs) finally: if self._future_experiment_key is not None: os.environ.pop("COMET_EXPERIMENT_KEY") self._future_experiment_key = None if self._experiment_name: self._experiment.set_name(self._experiment_name) return self._experiment
def experiment(self) -> CometBaseExperiment: r""" Actual comet object. To use comet features do the following. Example:: self.logger.experiment.some_comet_function() """ if self._experiment is not None: return self._experiment if self.mode == "online": if self.experiment_key is None: self._experiment = CometExperiment( api_key=self.api_key, workspace=self.workspace, project_name=self.project_name, **self._kwargs ) self.experiment_key = self._experiment.get_key() else: self._experiment = CometExistingExperiment( api_key=self.api_key, workspace=self.workspace, project_name=self.project_name, previous_experiment=self.experiment_key, **self._kwargs ) else: self._experiment = CometOfflineExperiment( offline_directory=self.save_dir, workspace=self.workspace, project_name=self.project_name, **self._kwargs ) return self._experiment
def experiment(self) -> CometBaseExperiment: r""" Actual Comet object. To use Comet features in your :class:`~pytorch_lightning.core.lightning.LightningModule` do the following. Example:: self.logger.experiment.some_comet_function() """ if self._experiment is not None: return self._experiment if self.mode == "online": if self.experiment_key is None: self._experiment = CometExperiment( api_key=self.api_key, workspace=self.workspace, project_name=self.project_name, **self._kwargs) self.experiment_key = self._experiment.get_key() else: self._experiment = CometExistingExperiment( api_key=self.api_key, workspace=self.workspace, project_name=self.project_name, previous_experiment=self.experiment_key, **self._kwargs) else: save_dir = Path(self.save_dir) / self.name / self.version save_dir.mkdir(exist_ok=True, parents=True) self._experiment = CometOfflineExperiment( offline_directory=save_dir, workspace=self.workspace, project_name=self.project_name, **self._kwargs) if self.experiment_name is not None: self._experiment.set_name(self.experiment_name) return self._experiment