CometLogger¶
- class pytorch_lightning.loggers.CometLogger(api_key=None, save_dir=None, project_name=None, rest_api_key=None, experiment_name=None, experiment_key=None, offline=False, prefix='', agg_key_funcs=None, agg_default_func=None, **kwargs)[source]¶
Bases:
pytorch_lightning.loggers.base.LightningLoggerBase
Log using Comet.ml.
Install it with pip:
pip install comet-ml
Comet requires either an API Key (online mode) or a local directory path (offline mode).
ONLINE MODE
import os from pytorch_lightning import Trainer from pytorch_lightning.loggers import CometLogger # arguments made to CometLogger are passed on to the comet_ml.Experiment class comet_logger = CometLogger( api_key=os.environ.get("COMET_API_KEY"), workspace=os.environ.get("COMET_WORKSPACE"), # Optional save_dir=".", # Optional project_name="default_project", # Optional rest_api_key=os.environ.get("COMET_REST_API_KEY"), # Optional experiment_key=os.environ.get("COMET_EXPERIMENT_KEY"), # Optional experiment_name="lightning_logs", # Optional ) trainer = Trainer(logger=comet_logger)
OFFLINE MODE
from pytorch_lightning.loggers import CometLogger # arguments made to CometLogger are passed on to the comet_ml.Experiment class comet_logger = CometLogger( save_dir=".", workspace=os.environ.get("COMET_WORKSPACE"), # Optional project_name="default_project", # Optional rest_api_key=os.environ.get("COMET_REST_API_KEY"), # Optional experiment_name="lightning_logs", # Optional ) trainer = Trainer(logger=comet_logger)
- Parameters
api_key¶ (
Optional
[str
]) – Required in online mode. API key, found on Comet.ml. If not given, this will be loaded from the environment variable COMET_API_KEY or ~/.comet.config if either exists.save_dir¶ (
Optional
[str
]) – Required in offline mode. The path for the directory to save local comet logs. If given, this also sets the directory for saving checkpoints.project_name¶ (
Optional
[str
]) – Optional. Send your experiment to a specific project. Otherwise will be sent to Uncategorized Experiments. If the project name does not already exist, Comet.ml will create a new project.rest_api_key¶ (
Optional
[str
]) – Optional. Rest API key found in Comet.ml settings. This is used to determine version numberexperiment_name¶ (
Optional
[str
]) – Optional. String representing the name for this particular experiment on Comet.ml.experiment_key¶ (
Optional
[str
]) – Optional. If set, restores from existing experiment.offline¶ (
bool
) – If api_key and save_dir are both given, this determines whether the experiment will be in online or offline mode. This is useful if you use save_dir to control the checkpoints directory and have a ~/.comet.config file but still want to run offline experiments.prefix¶ (
str
) – A string to put at the beginning of metric keys.**kwargs¶ – Additional arguments like workspace, log_code, etc. used by
CometExperiment
can be passed as keyword arguments in this logger.
- Raises
ModuleNotFoundError – If required Comet package is not installed on the device.
MisconfigurationException – If neither
api_key
norsave_dir
are passed as arguments.
- finalize(status)[source]¶
When calling
self.experiment.end()
, that experiment won’t log any more data to Comet. That’s why, if you need to log any more data, you need to create an ExistingCometExperiment. For example, to log data when testing your model after training, because when training is finalizedCometLogger.finalize()
is called.This happens automatically in the
experiment()
property, whenself._experiment
is set toNone
, i.e.self.reset_experiment()
.- Return type
- log_graph(model, input_array=None)[source]¶
Record model graph.
- Parameters
model¶ (
LightningModule
) – lightning modelinput_array¶ – input passes to model.forward
- Return type
- log_metrics(metrics, step=None)[source]¶
Records metrics. This method logs metrics as as soon as it received them. If you want to aggregate metrics for one specific step, use the
agg_and_log_metrics()
method.
- property experiment: Union[comet_ml.Experiment, comet_ml.ExistingExperiment, comet_ml.OfflineExperiment]¶
Actual Comet object. To use Comet features in your
LightningModule
do the following.Example:
self.logger.experiment.some_comet_function()
- Return type
Union
[Experiment
,ExistingExperiment
,OfflineExperiment
]
- property name: str¶
Gets the project name.
- Return type
- Returns
The project name if it is specified, else “comet-default”.