mirror of
https://github.com/wassname/pytorch-lightning.git
synced 2026-09-10 12:21:57 +08:00
added loggers
This commit is contained in:
@@ -77,25 +77,8 @@ from os import environ
|
||||
from .base import LightningLoggerBase, rank_zero_only
|
||||
from .tensorboard import TensorBoardLogger
|
||||
|
||||
all = []
|
||||
all = ['TensorBoardLogger']
|
||||
|
||||
try:
|
||||
from .test_tube import TestTubeLogger
|
||||
all.append('TestTubeLogger')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from .mlflow import MLFlowLogger
|
||||
all.append('MLFlowLogger')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from .wandb import WandbLogger
|
||||
all.append('WandbLogger')
|
||||
except ImportError:
|
||||
pass
|
||||
try:
|
||||
# needed to prevent ImportError and duplicated logs.
|
||||
environ["COMET_DISABLE_AUTO_LOGGING"] = "1"
|
||||
@@ -105,10 +88,30 @@ try:
|
||||
except ImportError:
|
||||
del environ["COMET_DISABLE_AUTO_LOGGING"]
|
||||
|
||||
try:
|
||||
from .mlflow import MLFlowLogger
|
||||
all.append('MLFlowLogger')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from .neptune import NeptuneLogger
|
||||
all.append('NeptuneLogger')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from .test_tube import TestTubeLogger
|
||||
all.append('TestTubeLogger')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from .wandb import WandbLogger
|
||||
all.append('WandbLogger')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
__all__ = all
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
"""
|
||||
Log using `comet <https://www.comet.ml>`_
|
||||
|
||||
Comet logger can be used in either online or offline mode.
|
||||
To log in online mode, CometLogger requries an API key:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# -------------------
|
||||
# ONLINE MODE
|
||||
# -------------------
|
||||
from pytorch_lightning.logging import CometLogger
|
||||
|
||||
# arguments made to CometLogger are passed on to the comet_ml.Experiment class
|
||||
comet_logger = CometLogger(
|
||||
api_key=os.environ["COMET_KEY"],
|
||||
@@ -17,10 +16,9 @@ To log in online mode, CometLogger requries an API key:
|
||||
)
|
||||
trainer = Trainer(logger=comet_logger)
|
||||
|
||||
To log in offline mode, CometLogger requires a path to a local directory:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# -------------------
|
||||
# OFFLINE MODE
|
||||
# -------------------
|
||||
from pytorch_lightning.logging import CometLogger
|
||||
# arguments made to CometLogger are passed on to the comet_ml.Experiment class
|
||||
comet_logger = CometLogger(
|
||||
@@ -71,18 +69,54 @@ logger = getLogger(__name__)
|
||||
class CometLogger(LightningLoggerBase):
|
||||
def __init__(self, api_key=None, save_dir=None, workspace=None,
|
||||
rest_api_key=None, project_name=None, experiment_name=None, **kwargs):
|
||||
"""Initialize a Comet.ml logger.
|
||||
r"""
|
||||
|
||||
Log using `comet <https://www.comet.ml>`_.
|
||||
|
||||
Requires either an API Key (online mode) or a local directory path (offline mode)
|
||||
|
||||
:param str api_key: Required in online mode. API key, found on Comet.ml
|
||||
:param str save_dir: Required in offline mode. The path for the directory to save local comet logs
|
||||
:param str workspace: Optional. Name of workspace for this user
|
||||
:param str project_name: Optional. Send your experiment to a specific project.
|
||||
Otherwise will be sent to Uncategorized Experiments.
|
||||
If project name does not already exists Comet.ml will create a new project.
|
||||
:param str rest_api_key: Optional. Rest API key found in Comet.ml settings.
|
||||
This is used to determine version number
|
||||
:param str experiment_name: Optional. String representing the name for this particular experiment on Comet.ml
|
||||
.. code-block:: python
|
||||
|
||||
# ONLINE MODE
|
||||
from pytorch_lightning.logging import CometLogger
|
||||
|
||||
# arguments made to CometLogger are passed on to the comet_ml.Experiment class
|
||||
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)
|
||||
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# OFFLINE MODE
|
||||
from pytorch_lightning.logging import CometLogger
|
||||
|
||||
# arguments made to CometLogger are passed on to the comet_ml.Experiment class
|
||||
comet_logger = CometLogger(
|
||||
save_dir=".",
|
||||
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)
|
||||
|
||||
Args:
|
||||
api_key (str): Required in online mode. API key, found on Comet.ml
|
||||
save_dir (str): Required in offline mode. The path for the directory to save local comet logs
|
||||
workspace (str): Optional. Name of workspace for this user
|
||||
project_name (str): Optional. Send your experiment to a specific project.
|
||||
Otherwise will be sent to Uncategorized Experiments.
|
||||
If project name does not already exists Comet.ml will create a new project.
|
||||
rest_api_key (str): Optional. Rest API key found in Comet.ml settings.
|
||||
This is used to determine version number
|
||||
experiment_name (str): Optional. String representing the name for this particular experiment on Comet.ml
|
||||
|
||||
"""
|
||||
super().__init__()
|
||||
self._experiment = None
|
||||
@@ -124,6 +158,15 @@ class CometLogger(LightningLoggerBase):
|
||||
|
||||
@property
|
||||
def experiment(self):
|
||||
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
|
||||
|
||||
|
||||
@@ -47,6 +47,15 @@ class MLFlowLogger(LightningLoggerBase):
|
||||
|
||||
@property
|
||||
def experiment(self):
|
||||
r"""
|
||||
|
||||
Actual mlflow object. To use mlflow features do the following.
|
||||
|
||||
Example::
|
||||
|
||||
self.logger.experiment.some_mlflow_function()
|
||||
|
||||
"""
|
||||
return self._mlflow_client
|
||||
|
||||
@property
|
||||
|
||||
@@ -111,6 +111,16 @@ class NeptuneLogger(LightningLoggerBase):
|
||||
|
||||
@property
|
||||
def experiment(self):
|
||||
r"""
|
||||
|
||||
Actual neptune object. To use neptune features do the following.
|
||||
|
||||
Example::
|
||||
|
||||
self.logger.experiment.some_neptune_function()
|
||||
|
||||
"""
|
||||
|
||||
if self._experiment is not None:
|
||||
return self._experiment
|
||||
else:
|
||||
|
||||
@@ -45,10 +45,15 @@ class TensorBoardLogger(LightningLoggerBase):
|
||||
|
||||
@property
|
||||
def experiment(self):
|
||||
"""The underlying :class:`torch.utils.tensorboard.SummaryWriter`.
|
||||
r"""
|
||||
|
||||
:rtype: torch.utils.tensorboard.SummaryWriter
|
||||
"""
|
||||
Actual tensorboard object. To use tensorboard features do the following.
|
||||
|
||||
Example::
|
||||
|
||||
self.logger.experiment.some_tensorboard_function()
|
||||
|
||||
"""
|
||||
if self._experiment is not None:
|
||||
return self._experiment
|
||||
|
||||
|
||||
@@ -55,6 +55,16 @@ class TestTubeLogger(LightningLoggerBase):
|
||||
|
||||
@property
|
||||
def experiment(self):
|
||||
r"""
|
||||
|
||||
Actual test-tube object. To use test-tube features do the following.
|
||||
|
||||
Example::
|
||||
|
||||
self.logger.experiment.some_test_tube_function()
|
||||
|
||||
"""
|
||||
|
||||
if self._experiment is not None:
|
||||
return self._experiment
|
||||
|
||||
|
||||
@@ -68,6 +68,15 @@ class WandbLogger(LightningLoggerBase):
|
||||
|
||||
@property
|
||||
def experiment(self):
|
||||
r"""
|
||||
|
||||
Actual wandb object. To use wandb features do the following.
|
||||
|
||||
Example::
|
||||
|
||||
self.logger.experiment.some_wandb_function()
|
||||
|
||||
"""
|
||||
if self._experiment is None:
|
||||
if self._offline:
|
||||
os.environ["WANDB_MODE"] = "dryrun"
|
||||
|
||||
Reference in New Issue
Block a user