Comet.ml ======== To use `Comet.ml `_ first install the comet package: .. code-block:: bash pip install comet-ml Configure the logger and pass it to the :class:`~pytorch_lightning.trainer.trainer.Trainer`: .. testcode:: :skipif: not _COMET_AVAILABLE from pytorch_lightning.loggers import CometLogger comet_logger = CometLogger(api_key="YOUR_COMET_API_KEY") trainer = Trainer(logger=comet_logger) Access the comet logger from any function (except the LightningModule *init*) to use its API for tracking advanced artifacts .. code-block:: python class LitModel(LightningModule): def any_lightning_module_function_or_hook(self): comet = self.logger.experiment fake_images = torch.Tensor(32, 3, 28, 28) comet.add_image("generated_images", fake_images, 0) Here's the full documentation for the :class:`~pytorch_lightning.loggers.CometLogger`. ---- MLflow ====== To use `MLflow `_ first install the MLflow package: .. code-block:: bash pip install mlflow Configure the logger and pass it to the :class:`~pytorch_lightning.trainer.trainer.Trainer`: .. testcode:: :skipif: not _MLFLOW_AVAILABLE from pytorch_lightning.loggers import MLFlowLogger mlf_logger = MLFlowLogger(experiment_name="lightning_logs", tracking_uri="file:./ml-runs") trainer = Trainer(logger=mlf_logger) Access the mlflow logger from any function (except the LightningModule *init*) to use its API for tracking advanced artifacts .. code-block:: python class LitModel(LightningModule): def any_lightning_module_function_or_hook(self): mlf_logger = self.logger.experiment fake_images = torch.Tensor(32, 3, 28, 28) mlf_logger.add_image("generated_images", fake_images, 0) Here's the full documentation for the :class:`~pytorch_lightning.loggers.MLFlowLogger`. ---- Neptune.ai ========== To use `Neptune.ai `_ first install the neptune package: .. code-block:: bash pip install neptune-client or with conda: .. code-block:: bash conda install -c conda-forge neptune-client Configure the logger and pass it to the :class:`~pytorch_lightning.trainer.trainer.Trainer`: .. testcode:: :skipif: not _NEPTUNE_AVAILABLE from pytorch_lightning.loggers import NeptuneLogger neptune_logger = NeptuneLogger( api_key="ANONYMOUS", # replace with your own project="common/pytorch-lightning-integration", # format "" ) trainer = Trainer(logger=neptune_logger) Access the neptune logger from any function (except the LightningModule *init*) to use its API for tracking advanced artifacts .. code-block:: python class LitModel(LightningModule): def any_lightning_module_function_or_hook(self): neptune_logger = self.logger.experiment["your/metadata/structure"] neptune_logger.log(metadata) Here's the full documentation for the :class:`~pytorch_lightning.loggers.NeptuneLogger`. ---- Tensorboard =========== `TensorBoard `_ already comes installed with Lightning. If you removed the install install the following package. .. code-block:: bash pip install tensorboard Configure the logger and pass it to the :class:`~pytorch_lightning.trainer.trainer.Trainer`: .. code-block:: python from pytorch_lightning.loggers import TensorBoardLogger logger = TensorBoardLogger() trainer = Trainer(logger=logger) Access the tensorboard logger from any function (except the LightningModule *init*) to use its API for tracking advanced artifacts .. code-block:: python class LitModel(LightningModule): def any_lightning_module_function_or_hook(self): tensorboard_logger = self.logger.experiment fake_images = torch.Tensor(32, 3, 28, 28) tensorboard_logger.add_image("generated_images", fake_images, 0) Here's the full documentation for the :class:`~pytorch_lightning.loggers.TensorBoardLogger`. ---- Weights and Biases ================== To use `Weights and Biases `_ (wandb) first install the wandb package: .. code-block:: bash pip install wandb Configure the logger and pass it to the :class:`~pytorch_lightning.trainer.trainer.Trainer`: .. testcode:: :skipif: not _WANDB_AVAILABLE from pytorch_lightning.loggers import WandbLogger wandb_logger = WandbLogger(project="MNIST", log_model="all") trainer = Trainer(logger=wandb_logger) # log gradients and model topology wandb_logger.watch(model) Access the wandb logger from any function (except the LightningModule *init*) to use its API for tracking advanced artifacts .. code-block:: python class MyModule(LightningModule): def any_lightning_module_function_or_hook(self): wandb_logger = self.logger.experiment fake_images = torch.Tensor(32, 3, 28, 28) # Option 1 wandb_logger.log({"generated_images": [wandb.Image(fake_images, caption="...")]}) # Option 2 for specifically logging images wandb_logger.log_image(key="generated_images", images=[fake_images]) Here's the full documentation for the :class:`~pytorch_lightning.loggers.WandbLogger`. `Demo in Google Colab `__ with hyperparameter search and model logging. ---- Use multiple exp managers ========================= To use multiple experiment managers at the same time, pass a list to the *logger* :class:`~pytorch_lightning.trainer.trainer.Trainer` argument. .. testcode:: :skipif: not _WANDB_AVAILABLE from pytorch_lightning.loggers import TensorBoardLogger, WandbLogger logger1 = TensorBoardLogger() logger2 = WandbLogger() trainer = Trainer(logger=[logger1, logger2]) Access all loggers from any function (except the LightningModule *init*) to use their APIs for tracking advanced artifacts .. code-block:: python class MyModule(LightningModule): def any_lightning_module_function_or_hook(self): tensorboard_logger = self.logger.experiment[0] wandb_logger = self.logger.experiment[1] fake_images = torch.Tensor(32, 3, 28, 28) tensorboard_logger.add_image("generated_images", fake_images, 0) wandb_logger.add_image("generated_images", fake_images, 0)