Experiment Logging =================== Comet.ml ^^^^^^^^ `Comet.ml `_ is a third-party logger. To use CometLogger as your logger do the following. .. seealso:: :ref:`comet` docs. .. code-block:: python from pytorch_lightning.loggers import CometLogger comet_logger = CometLogger( api_key=os.environ["COMET_KEY"], workspace=os.environ["COMET_WORKSPACE"], # Optional project_name="default_project", # Optional rest_api_key=os.environ["COMET_REST_KEY"], # Optional experiment_name="default" # Optional ) trainer = Trainer(logger=comet_logger) The CometLogger is available anywhere except ``__init__`` in your LightningModule .. code-block:: python class MyModule(pl.LightningModule): def any_lightning_module_function_or_hook(self, ...): some_img = fake_image() self.logger.experiment.add_image('generated_images', some_img, 0) Neptune.ai ^^^^^^^^^^ `Neptune.ai `_ is a third-party logger. To use Neptune.ai as your logger do the following. .. seealso:: :ref:`neptune` docs. .. code-block:: python from pytorch_lightning.loggers import NeptuneLogger neptune_logger = NeptuneLogger( project_name="USER_NAME/PROJECT_NAME", experiment_name="default", # Optional, params={"max_epochs": 10}, # Optional, tags=["pytorch-lightning","mlp"] # Optional, ) trainer = Trainer(logger=neptune_logger) The Neptune.ai is available anywhere except ``__init__`` in your LightningModule .. code-block:: python class MyModule(pl.LightningModule): def any_lightning_module_function_or_hook(self, ...): some_img = fake_image() self.logger.experiment.add_image('generated_images', some_img, 0) allegro.ai TRAINS ^^^^^^^^^^^^^^^^^ `allegro.ai `_ is a third-party logger. To use TRAINS as your logger do the following. .. seealso:: :ref:`trains` docs. .. code-block:: python from pytorch_lightning.loggers import TrainsLogger trains_logger = TrainsLogger( project_name="examples", task_name="pytorch lightning test" ) trainer = Trainer(logger=trains_logger) The TrainsLogger is available anywhere in your LightningModule .. code-block:: python class MyModule(pl.LightningModule): def __init__(self, ...): some_img = fake_image() self.logger.log_image('debug', 'generated_image_0', some_img, 0) Tensorboard ^^^^^^^^^^^ To use `Tensorboard `_ as your logger do the following. .. seealso:: TensorBoardLogger :ref:`tf-logger` .. code-block:: python from pytorch_lightning.loggers import TensorBoardLogger logger = TensorBoardLogger("tb_logs", name="my_model") trainer = Trainer(logger=logger) The TensorBoardLogger is available anywhere except ``__init__`` in your LightningModule .. code-block:: python class MyModule(pl.LightningModule): def any_lightning_module_function_or_hook(self, ...): some_img = fake_image() self.logger.experiment.add_image('generated_images', some_img, 0) Test Tube ^^^^^^^^^ `Test Tube `_ is a tensorboard logger but with nicer file structure. To use TestTube as your logger do the following. .. seealso:: TestTube :ref:`testTube` .. code-block:: python from pytorch_lightning.loggers import TestTubeLogger logger = TestTubeLogger("tb_logs", name="my_model") trainer = Trainer(logger=logger) The TestTubeLogger is available anywhere except ``__init__`` in your LightningModule .. code-block:: python class MyModule(pl.LightningModule): def any_lightning_module_function_or_hook(self, ...): some_img = fake_image() self.logger.experiment.add_image('generated_images', some_img, 0) Wandb ^^^^^ `Wandb `_ is a third-party logger. To use Wandb as your logger do the following. .. seealso:: :ref:`wandb` docs .. code-block:: python from pytorch_lightning.loggers import WandbLogger wandb_logger = WandbLogger() trainer = Trainer(logger=wandb_logger) The Wandb logger is available anywhere except ``__init__`` in your LightningModule .. code-block:: python class MyModule(pl.LightningModule): def any_lightning_module_function_or_hook(self, ...): some_img = fake_image() self.logger.experiment.add_image('generated_images', some_img, 0) Multiple Loggers ^^^^^^^^^^^^^^^^^ PyTorch-Lightning supports use of multiple loggers, just pass a list to the `Trainer`. .. code-block:: python from pytorch_lightning.loggers import TensorBoardLogger, TestTubeLogger logger1 = TensorBoardLogger("tb_logs", name="my_model") logger2 = TestTubeLogger("tt_logs", name="my_model") trainer = Trainer(logger=[logger1, logger2]) The loggers are available as a list anywhere except ``__init__`` in your LightningModule .. code-block:: python class MyModule(pl.LightningModule): def any_lightning_module_function_or_hook(self, ...): some_img = fake_image() # Option 1 self.logger.experiment[0].add_image('generated_images', some_img, 0) # Option 2 self.logger[0].experiment.add_image('generated_images', some_img, 0)