使用 dvc 2.0 中额外配置的参数
Use parameters from additional configs in dvc 2.0
使用 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'.
我错过了什么?使用模板功能完全可以做到这一点吗?
我认为在这种情况下您不需要模板功能。如图所示example:
stages:
train:
cmd: python train.py
deps:
- users.csv
params:
- params.py:
- BOOL
- INT
- TrainConfig.EPOCHS
- TrainConfig.layers
outs:
- model.pkl
重新定义默认params.yaml
的方法是在params:
部分明确指定文件名:
params:
- preproc.yaml:
- important_parameter
此外,当您使用 dvc run
(not recommended) or dvc stage add
创建阶段时,您可以明确提供参数文件名作为前缀:
dvc run -n train -d train.py -d logs/ -o users.csv -f \
-p parse_params.yaml:threshold,classes_num \
python train.py
这里^^ parse_params.yaml
是一个自定义的params文件。
请让我知道它是否解决了问题,如果您有任何其他问题:)
使用 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'.
我错过了什么?使用模板功能完全可以做到这一点吗?
我认为在这种情况下您不需要模板功能。如图所示example:
stages:
train:
cmd: python train.py
deps:
- users.csv
params:
- params.py:
- BOOL
- INT
- TrainConfig.EPOCHS
- TrainConfig.layers
outs:
- model.pkl
重新定义默认params.yaml
的方法是在params:
部分明确指定文件名:
params:
- preproc.yaml:
- important_parameter
此外,当您使用 dvc run
(not recommended) or dvc stage add
创建阶段时,您可以明确提供参数文件名作为前缀:
dvc run -n train -d train.py -d logs/ -o users.csv -f \
-p parse_params.yaml:threshold,classes_num \
python train.py
这里^^ parse_params.yaml
是一个自定义的params文件。
请让我知道它是否解决了问题,如果您有任何其他问题:)