Edit on GitHub

dvc.api.exp_show()

Get DVC experiments tracked in a DVC repository.

def exp_show(
    repo: Optional[str] = None,
    revs: Optional[Union[str, List[str]]] = None,
    num: int = 1,
    param_deps: bool = False,
    force: bool = False,
) -> List[Dict]:

Usage:

import dvc.api

exps = dvc.api.exp_show()

Description

Get DVC experiments tracked in a DVC repository and returns a list of dictionaries, where each dictionary represents an experiment:

[
  {
    "Experiment": "paled-acre",
    "rev": "883442c",
    "Created": "Apr 19, 2023",
    "dice_multi": 0.8590125166103912,
    "train.arch": "squeezenet1_1"
  },
  {
    "Experiment": "vocal-suer",
    "rev": "231e504",
    "Created": "Apr 19, 2023",
    "dice_multi": 0.8997336177828745,
    "train.arch": "resnet34"
  },
  {
    "Experiment": "banal-hogs",
    "rev": "ff4a08a",
    "Created": "Apr 19, 2023",
    "dice_multi": 0.8758231459806097,
    "train.arch": "alexnet"
  }
]

Without arguments, this function gets all experiments derived from the Git HEAD.

Parameters

  • repo - specifies the location of the DVC project. It can be a URL or a file system path. Both HTTP and SSH protocols are supported for online Git repos (e.g. [user@]server:project.git). Default: The current project (found by walking up from the current working directory tree).

  • revs - List of Git commits (any revision such as a branch or tag name, a commit hash or an experiment name). Default: None (current working tree will be used)

  • param_deps - whether to retrieve only params that are stage dependencies. Default: False.

Example: Create a Pandas DataFrame

The format returned by dvc.api.exp_show() can be directly converted to a Pandas DataFrame:

import dvc.api
import pandas as pd

df = pd.DataFrame(dvc.api.exp_show())

You can manipulate the Pandas DataFrame to use a subset of the columns and clean up the rows:

columns = ["Experiment", "dice_multi", "train.arch"]

df = pd.DataFrame(dvc.api.exp_show(), columns=columns)

df.dropna(inplace=True)
df.reset_index(drop=True, inplace=True)

df.to_markdown()
Experimenttrain.archdice_multi
0paled-acresqueezenet1_10.859013
1vocal-suerresnet340.891619
2banal-hogsalexnet0.875823

Example: Passing revs from dvc.api.scm

The results of the dvc.api.scm functions can be passed to the revs argument:

import dvc.api
import pandas as pd

all_tags = dvc.api.scm.all_tags()
exps = dvc.api.exp_show(revs=all_tags)
Content

🐛 Found an issue? Let us know! Or fix it:

Edit on GitHub

Have a question? Join our chat, we will help you:

Discord Chat