Python 使用dvc 2.0中其他配置的参数

Python 使用dvc 2.0中其他配置的参数,python,dvc,Python,Dvc,使用dvc版本2.0.18和python 3.9.2,在配置dvc.yaml中的阶段参数时,我希望使用与params.yaml不同的配置文件中定义的参数。然而,它并没有像我预期的那样工作 MWE: Git回购+dvc初始: . ├── dvc.yaml ├── preproc.yaml └── test.py dvc.yaml: vars: - preproc.yaml stages: test: cmd: python test.py deps: - te

使用dvc版本2.0.18和python 3.9.2,在配置
dvc.yaml
中的阶段参数时,我希望使用与params.yaml不同的配置文件中定义的参数。然而,它并没有像我预期的那样工作

MWE: Git回购+dvc初始:

.
├── dvc.yaml
├── preproc.yaml
└── test.py
dvc.yaml:

vars:
  - preproc.yaml
stages:
  test:
    cmd: python test.py
    deps:
      - test.py
    params:
      - important_parameter
preproc.yaml:

important_parameter: 123
运行
dvc repro
会导致以下错误:

ERROR: failed to reproduce 'dvc.yaml': dependency 'params.yaml' does not exist
创建不包含内容的伪params.yaml将提供:

WARNING: 'params.yaml' is empty.
ERROR: failed to reproduce 'dvc.yaml': Parameters 'important_parameter' are missing from 'params.yaml'.

我错过了什么?使用模板功能是否可能做到这一点?

我认为在这种情况下不需要模板功能。如图所示:

阶段:
列车:
cmd:python train.py
副署长:
-users.csv
参数:
-参数s.py:
-布尔
-INT
-TrainConfig.EPOCHS
-TrainConfig.layers
出局:
-model.pkl
重新定义默认的
params.yaml
的方法是在
params:
部分显式指定文件名:

参数:
-preproc.yaml:
-重要参数
此外,当您使用(不推荐)或创建阶段时,您可以显式提供参数文件名作为前缀:

dvc运行-n train-d train.py-d logs/-o users.csv-f\
-p parse_params.yaml:阈值,类数\
python train.py
这里^^
parse_params.yaml
是一个自定义参数文件


请告诉我它是否解决了问题,以及您是否还有其他问题:)

谢谢您解决了最初的问题。你包含的链接很好地解释了这一点。不过,我们可能会从改进文档中获益。其中说“要加载其他参数文件,请按所需顺序在顶部变量中列出它们,例如:”。这就是我最初困惑的根源。什么是“MWE”?:)快速的答案是将参数名放在替换表达式中,即
${important_parameter}
,但下面@shcheklein的答案更正确。