MLFlowLogger¶
- class lightning.pytorch.loggers.MLFlowLogger(experiment_name='lightning_logs', run_name=None, tracking_uri=None, tags=None, save_dir='./mlruns', log_model=False, prefix='', artifact_location=None, run_id=None, synchronous=None)[source]¶
Bases:
Logger
Log using MLflow.
Install it with pip:
pip install mlflow # or mlflow-skinny
from lightning.pytorch import Trainer from lightning.pytorch.loggers import MLFlowLogger mlf_logger = MLFlowLogger(experiment_name="lightning_logs", tracking_uri="file:./ml-runs") trainer = Trainer(logger=mlf_logger)
Use the logger anywhere in your
LightningModule
as follows:from lightning.pytorch import LightningModule class LitModel(LightningModule): def training_step(self, batch, batch_idx): # example self.logger.experiment.whatever_ml_flow_supports(...) def any_lightning_module_function_or_hook(self): self.logger.experiment.whatever_ml_flow_supports(...)
- Parameters:
run_name¶ (
Optional
[str
]) – Name of the new run. The run_name is internally stored as amlflow.runName
tag. If themlflow.runName
tag has already been set in tags, the value is overridden by the run_name.tracking_uri¶ (
Optional
[str
]) – Address of local or remote tracking server. If not provided, defaults to MLFLOW_TRACKING_URI environment variable if set, otherwise it falls back to file:<save_dir>.tags¶ (
Optional
[dict
[str
,Any
]]) – A dictionary tags for the experiment.save_dir¶ (
Optional
[str
]) – A path to a local directory where the MLflow runs get saved. Defaults to ./mlruns if tracking_uri is not provided. Has no effect if tracking_uri is provided.log_model¶ (
Literal
[True
,False
,'all'
]) –Log checkpoints created by
ModelCheckpoint
as MLFlow artifacts.if
log_model == 'all'
, checkpoints are logged during training.if
log_model == True
, checkpoints are logged at the end of training, except whensave_top_k
== -1
which also logs every checkpoint during training.if
log_model == False
(default), no checkpoint is logged.
prefix¶ (
str
) – A string to put at the beginning of metric keys.artifact_location¶ (
Optional
[str
]) – The location to store run artifacts. If not provided, the server picks an appropriate default.run_id¶ (
Optional
[str
]) – The run identifier of the experiment. If not provided, a new run is started.synchronous¶ (
Optional
[bool
]) – Hints mlflow whether to block the execution for every logging call until complete where applicable. Requires mlflow >= 2.8.0
- Raises:
ModuleNotFoundError – If required MLFlow package is not installed on the device.
Note
MLFlowLogger will skip logging any metric (same name and step) more than once per run, to prevent database unique constraint violations on some MLflow backends (such as PostgreSQL). Only the first value for each (metric, step) pair will be logged per run.
- after_save_checkpoint(checkpoint_callback)[source]¶
Called after model checkpoint callback saves a new checkpoint.
- Parameters:
checkpoint_callback¶ (
ModelCheckpoint
) – the model checkpoint callback instance- Return type:
- log_metrics(metrics, step=None)[source]¶
Records metrics. This method logs metrics as soon as it received them.
- property experiment: mlflow.tracking.MlflowClient¶
Actual MLflow object. To use MLflow features in your
LightningModule
do the following.Example:
self.logger.experiment.some_mlflow_function()
- property experiment_id: Optional[str]¶
Create the experiment if it does not exist to get the experiment id.
- Returns:
The experiment id.
- property run_id: Optional[str]¶
Create the experiment if it does not exist to get the run id.
- Returns:
The run id.