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,
    config: Optional[dict] = None,
) -> 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.

  • config - config dictionary to pass to the DVC project. This is merged with the existing project config and can be used to, for example, provide credentials to the remote. See dvc.api.open for examples.

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