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
- 是否仅获取作为阶段依赖项的参数。可接受True
或False
(默认值)。 -
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
}
}