mlflow.tracking
The mlflow.tracking
module provides a Python CRUD interface to MLflow experiments
and runs. This is a lower level API that directly translates to MLflow
REST API calls.
For a higher level API for managing an “active run”, use the mlflow
module.
-
class
mlflow.tracking.
MlflowClient
(tracking_uri=None, registry_uri=None)[source] Bases:
object
Client of an MLflow Tracking Server that creates and manages experiments and runs, and of an MLflow Registry Server that creates and manages registered models and model versions. It’s a thin wrapper around TrackingServiceClient and RegistryClient so there is a unified API but we can keep the implementation of the tracking and registry clients independent from each other.
-
create_experiment
(name, artifact_location=None)[source] Create an experiment.
- Parameters
name – The experiment name. Must be unique.
artifact_location – The location to store run artifacts. If not provided, the server picks an appropriate default.
- Returns
Integer ID of the created experiment.
-
create_model_version
(name, source, run_id)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Create a new model version from given source or run ID.
- Parameters
name – Name ID for containing registered model.
source – Source path where the MLflow model is stored.
run_id – Run ID from MLflow tracking server that generated the model
- Returns
Single
mlflow.entities.model_registry.ModelVersion
object created by backend.
-
create_registered_model
(name)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Create a new registered model in backend store.
- Parameters
name – Name of the new model. This is expected to be unique in the backend store.
- Returns
A single object of
mlflow.entities.model_registry.RegisteredModel
created by backend.
-
create_run
(experiment_id, start_time=None, tags=None)[source] Create a
mlflow.entities.Run
object that can be associated with metrics, parameters, artifacts, etc. Unlikemlflow.projects.run()
, creates objects but does not run code. Unlikemlflow.start_run()
, does not change the “active run” used bymlflow.log_param()
.- Parameters
experiment_id – The ID of then experiment to create a run in.
start_time – If not provided, use the current timestamp.
tags – A dictionary of key-value pairs that are converted into
mlflow.entities.RunTag
objects.
- Returns
mlflow.entities.Run
that was created.
-
delete_experiment
(experiment_id)[source] Delete an experiment from the backend store.
- Parameters
experiment_id – The experiment ID returned from
create_experiment
.
-
delete_model_version
(name, version)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Delete model version in backend.
- Parameters
name – Name of the containing registered model.
version – Version number of the model version.
-
delete_registered_model
(name)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Delete registered model. Backend raises exception if a registered model with given name does not exist.
- Parameters
name – Name of the registered model to update.
-
delete_run
(run_id)[source] Deletes a run with the given ID.
-
delete_tag
(run_id, key)[source] Delete a tag from a run. This is irreversible.
- Parameters
run_id – String ID of the run
key – Name of the tag
-
download_artifacts
(run_id, path, dst_path=None)[source] Download an artifact file or directory from a run to a local directory if applicable, and return a local path for it.
- Parameters
run_id – The run to download artifacts from.
path – Relative source path to the desired artifact.
dst_path – Absolute path of the local filesystem destination directory to which to download the specified artifacts. This directory must already exist. If unspecified, the artifacts will either be downloaded to a new uniquely-named directory on the local filesystem or will be returned directly in the case of the LocalArtifactRepository.
- Returns
Local path of desired artifact.
-
get_experiment
(experiment_id)[source] Retrieve an experiment by experiment_id from the backend store
- Parameters
experiment_id – The experiment ID returned from
create_experiment
.- Returns
-
get_experiment_by_name
(name)[source] Retrieve an experiment by experiment name from the backend store
- Parameters
name – The experiment name.
- Returns
-
get_latest_versions
(name, stages=None)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Latest version models for each requests stage. If no
stages
provided, returns the latest version for each stage.- Parameters
name – Name of the registered model to update.
stages – List of desired stages. If input list is None, return latest versions for for ALL_STAGES.
- Returns
List of
mlflow.entities.model_registry.ModelVersion
objects.
-
get_metric_history
(run_id, key)[source] Return a list of metric objects corresponding to all values logged for a given metric.
- Parameters
run_id – Unique identifier for run
key – Metric name within the run
- Returns
A list of
mlflow.entities.Metric
entities if logged, else empty list
-
get_model_version
(name, version)[source] Note
Experimental: This method may change or be removed in a future release without warning.
- Parameters
name – Name of the containing registered model.
version – Version number of the model version.
- Returns
A single
mlflow.entities.model_registry.ModelVersion
object.
-
get_model_version_details
(name, version)[source] Warning
mlflow.tracking.client.get_model_version_details
is deprecated since 1.7. This method will be removed in a near future release. Usemlflow.tracking.client.get_model_version
instead.- Parameters
name – Name of the containing registered model.
version – Version number of the model version.
- Returns
A single
mlflow.entities.model_registry.ModelVersion
object.
-
get_model_version_download_uri
(name, version)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Get the download location in Model Registry for this model version.
- Parameters
name – Name of the containing registered model.
version – Version number of the model version.
- Returns
A single URI location that allows reads for downloading.
-
get_model_version_stages
(name, version)[source] Note
Experimental: This method may change or be removed in a future release without warning.
- Returns
A list of valid stages.
-
get_registered_model
(name)[source] Note
Experimental: This method may change or be removed in a future release without warning.
- Parameters
name – Name of the registered model to update.
- Returns
A single
mlflow.entities.model_registry.RegisteredModel
object.
-
get_registered_model_details
(name)[source]
-
get_run
(run_id)[source] Fetch the run from backend store. The resulting
Run
contains a collection of run metadata –RunInfo
, as well as a collection of run parameters, tags, and metrics –RunData
. In the case where multiple metrics with the same key are logged for the run, theRunData
contains the most recently logged value at the largest step for each metric.- Parameters
run_id – Unique identifier for the run.
- Returns
A single
mlflow.entities.Run
object, if the run exists. Otherwise, raises an exception.
-
list_artifacts
(run_id, path=None)[source] List the artifacts for a run.
- Parameters
run_id – The run to list artifacts from.
path – The run’s relative artifact path to list from. By default it is set to None or the root artifact path.
- Returns
List of
mlflow.entities.FileInfo
-
list_experiments
(view_type=None)[source] - Returns
List of
mlflow.entities.Experiment
-
list_registered_models
()[source] Note
Experimental: This method may change or be removed in a future release without warning.
List of all registered models.
- Returns
List of
mlflow.entities.model_registry.RegisteredModel
objects.
-
list_run_infos
(experiment_id, run_view_type=1)[source] - Returns
List of
mlflow.entities.RunInfo
-
log_artifact
(run_id, local_path, artifact_path=None)[source] Write a local file or directory to the remote
artifact_uri
.- Parameters
local_path – Path to the file or directory to write.
artifact_path – If provided, the directory in
artifact_uri
to write to.
-
log_artifacts
(run_id, local_dir, artifact_path=None)[source] Write a directory of files to the remote
artifact_uri
.- Parameters
local_dir – Path to the directory of files to write.
artifact_path – If provided, the directory in
artifact_uri
to write to.
-
log_batch
(run_id, metrics=(), params=(), tags=())[source] Log multiple metrics, params, and/or tags.
- Parameters
run_id – String ID of the run
metrics – If provided, List of Metric(key, value, timestamp) instances.
params – If provided, List of Param(key, value) instances.
tags – If provided, List of RunTag(key, value) instances.
Raises an MlflowException if any errors occur. :return: None
-
log_metric
(run_id, key, value, timestamp=None, step=None)[source] Log a metric against the run ID.
- Parameters
run_id – The run id to which the metric should be logged.
key – Metric name.
value – Metric value (float). Note that some special values such as +/- Infinity may be replaced by other values depending on the store. For example, the SQLAlchemy store replaces +/- Inf with max / min float values.
timestamp – Time when this metric was calculated. Defaults to the current system time.
step – Integer training step (iteration) at which was the metric calculated. Defaults to 0.
-
log_param
(run_id, key, value)[source] Log a parameter against the run ID. Value is converted to a string.
-
rename_experiment
(experiment_id, new_name)[source] Update an experiment’s name. The new name must be unique.
- Parameters
experiment_id – The experiment ID returned from
create_experiment
.
-
rename_registered_model
(name, new_name)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Update registered model name.
- Parameters
name – Name of the registered model to update.
new_name – New proposed name for the registered model.
- Returns
A single updated
mlflow.entities.model_registry.RegisteredModel
object.
-
restore_experiment
(experiment_id)[source] Restore a deleted experiment unless permanently deleted.
- Parameters
experiment_id – The experiment ID returned from
create_experiment
.
-
restore_run
(run_id)[source] Restores a deleted run with the given ID.
-
search_model_versions
(filter_string)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Search for model versions in backend that satisfy the filter criteria.
- Parameters
filter_string – A filter string expression. Currently supports a single filter condition either name of model like
name = 'model_name'
orrun_id = '...'
.- Returns
PagedList of
mlflow.entities.model_registry.ModelVersion
objects.
-
search_runs
(experiment_ids, filter_string='', run_view_type=1, max_results=1000, order_by=None, page_token=None)[source] Search experiments that fit the search criteria.
- Parameters
experiment_ids – List of experiment IDs, or a single int or string id.
filter_string – Filter query string, defaults to searching all runs.
run_view_type – one of enum values ACTIVE_ONLY, DELETED_ONLY, or ALL runs defined in
mlflow.entities.ViewType
.max_results – Maximum number of runs desired.
order_by – List of columns to order by (e.g., “metrics.rmse”). The
order_by
column can contain an optionalDESC
orASC
value. The default isASC
. The default ordering is to sort bystart_time DESC
, thenrun_id
.page_token – Token specifying the next page of results. It should be obtained from a
search_runs
call.
- Returns
A list of
mlflow.entities.Run
objects that satisfy the search expressions. If the underlying tracking store supports pagination, the token for the next page may be obtained via thetoken
attribute of the returned object.
-
set_experiment_tag
(experiment_id, key, value)[source] Set a tag on the experiment with the specified ID. Value is converted to a string.
- Parameters
experiment_id – String ID of the experiment.
key – Name of the tag.
value – Tag value (converted to a string).
-
set_tag
(run_id, key, value)[source] Set a tag on the run with the specified ID. Value is converted to a string.
- Parameters
run_id – String ID of the run.
key – Name of the tag.
value – Tag value (converted to a string)
-
set_terminated
(run_id, status=None, end_time=None)[source] Set a run’s status to terminated.
- Parameters
status – A string value of
mlflow.entities.RunStatus
. Defaults to “FINISHED”.end_time – If not provided, defaults to the current time.
-
transition_model_version_stage
(name, version, stage)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Update model version stage.
- Parameters
name – Registered model name.
version – Registered model version.
stage – New desired stage for this model version.
- Returns
A single
mlflow.entities.model_registry.ModelVersion
object.
-
update_model_version
(name, version, stage=None, description=None)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Update metadata associated with a model version in backend.
- Parameters
name – Name of the containing registered model.
version – Version number of the model version.
stage – (Deprecated) New desired stage forthis model version. This field is deprecated as of mlflow 1.7. Use transition_model_version_stage instead to update stage.
description – New description.
- Returns
A single
mlflow.entities.model_registry.ModelVersion
object.
-
update_registered_model
(name, new_name=None, description=None)[source] Note
Experimental: This method may change or be removed in a future release without warning.
Updates metadata for RegisteredModel entity. Either
new_name
ordescription
should be non-None. Backend raises exception if a registered model with given name does not exist.- Parameters
name – Name of the registered model to update.
new_name – (Deprecated) New proposed name for the registered model. This argument is deprecated. Use the
rename_registered_model
method to rename registered models instead.description – (Optional) New description.
- Returns
A single updated
mlflow.entities.model_registry.RegisteredModel
object.
-
-
mlflow.tracking.
get_tracking_uri
()[source] Get the current tracking URI. This may not correspond to the tracking URI of the currently active run, since the tracking URI can be updated via
set_tracking_uri
.- Returns
The tracking URI.
-
mlflow.tracking.
set_tracking_uri
(uri)[source] Set the tracking server URI. This does not affect the currently active run (if one exists), but takes effect for successive runs.
- Parameters
uri –
An empty string, or a local file path, prefixed with
file:/
. Data is stored locally at the provided file (or./mlruns
if empty).An HTTP URI like
https://my-tracking-server:5000
.A Databricks workspace, provided as the string “databricks” or, to use a Databricks CLI profile, “databricks://<profileName>”.
-
mlflow.tracking.
is_tracking_uri_set
()[source] Returns True if the tracking URI has been set, False otherwise.