在 GitHub 上编辑

dvc.api.params_show()

获取在 DVC 仓库 中跟踪的参数(名称和值)。

def params_show(
    *targets: str,  # Optional
    stages: Optional[Union[str, Iterable[str]]] = None,
    repo: Optional[str] = None,
    rev: Optional[str] = None,
    deps: bool = False,
    config: Optional[dict] = None,
) -> Dict:

用法:

import dvc.api

params = dvc.api.params_show()

描述

DVC 仓库 获取 参数 的键和值,并返回一个字典,例如:

{
  "split": 0.2,
  "seed": 20170428
}

不带参数时,此函数将从所有被跟踪的参数文件中(即在任意 dvc.yaml 文件中使用的)获取全部参数。当使用 Git 时,这适用于当前项目版本(包括工作区中的任何更改)。

通过以下函数参数,可以限制获取的内容。

参数

  • *targets - 一个或多个指向有效参数文件的路径,用于从中获取参数,例如 "params.py", "feat/params.toml"。若未提供 targets,默认会查找所有在任意 dvc.yaml 中被追踪的参数文件。注意:显式指定的目标文件不必出现在 dvc.yaml 中(除非设置了 deps=True)。

  • repo — 指定 DVC 项目的所在位置。可以是 URL 或文件系统路径。在线 Git 仓库支持 HTTP 和 SSH 协议(例如 [user@]server:project.git)。默认值:当前项目(从当前工作目录向上查找确定)。

  • stages - 一个或多个要从中获取参数的阶段名称。默认值None(将获取所有阶段的所有参数)。如果该方法调用位置与 dvc.yaml 所在位置不同,则必须以相对路径作为前缀,使用语法 {relpath}:{stage},例如:subdir/dvc.yaml:stage-0../dvc.yaml:stage-1

  • rev - Git 提交(任何版本,如分支名、标签名、提交哈希或实验名称)。如果 repo 不是 Git 仓库,则忽略此选项。默认值None(使用当前工作树)

  • deps - 是否仅获取作为阶段依赖项的参数。可接受 TrueFalse默认值)。

  • config - 传递给 DVC 项目的 配置 字典。该配置会与现有项目配置合并,可用于例如向 remote 提供凭据。示例请参见 dvc.api.open

示例:按阶段名称过滤

stages 可以是单个字符串名称:

import dvc.api
params = dvc.api.params_show(stages="train")
{
  "n_est": 50,
  "min_split": 0.01
}

也可以是字符串组成的可迭代对象:

import dvc.api
params = dvc.api.params_show(stages=["featurize", "train"])
{
  "max_features": 200,
  "ngrams": 2
  "n_est": 50,
  "min_split": 0.01
}

返回的字典可在阶段内部使用:

clf = RandomForestClassifier(
    n_estimators=params["n_est"],
    min_samples_split=params["min_split"]
)

示例:加载特定参数文件

你可以将任意有效的参数文件路径作为目标传入,以加载其中定义的所有参数:

import dvc.api
params = dvc.api.params_show( "configs/params_dev.yaml")
{
  "run_mode": "prod",
  "configs": {
    "dev": "configs/params_dev.yaml",
    ...

或者多个路径目标:

import dvc.api
params = dvc.api.params_show(
  "configs/params_dev.yaml", "configs/params_prod.yaml")
{
  "configs/params_prod.yaml:run_mode": "prod",
  "configs/params_prod.yaml:config_file": "configs/params_prod.yaml",
  ...
  "configs/params_dev.yaml:run_mode": "dev",
  "configs/params_dev.yaml:config_file": "configs/params_dev.yaml",
  ...

示例:使用远程 DVC 仓库

你可以使用 repo 参数从任意 DVC 仓库 获取参数,而无需将其克隆到本地。

import dvc.api
params = dvc.api.params_show(
    repo="https://github.com/iterative/example-get-started")
{
  "prepare": {
    "split": 0.2,
    "seed": 20170428
  },
  "featurize": {
    "max_features": 200,
    "ngrams": 2
  },
  "train": {
    "seed": 20170428,
    "n_est": 50,
    "min_split": 0.01
  }
}

示例:指定项目版本

你可以从任意 Git 提交中获取参数,例如某个分支名称:

import json
import dvc.api
params = dvc.api.params_show(rev="tune-hyperparams")
{
  "prepare": {
    "split": 0.2,
    "seed": 20170428
  },
  "featurize": {
    "max_features": 200,
    "ngrams": 2
  },
  "train": {
    "seed": 20170428,
    "n_est": 100,
    "min_split": 8
  }
}
内容

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天