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

2024-05-14 08:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

使用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'.

我错过了什么?使用模板功能,这可能吗


Tags: topytest版本yaml参数parametererror
1条回答
网友
1楼 · 发布于 2024-05-14 08:26:23

我认为在这种情况下不需要模板功能。如图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

此外,当您使用^{}(不推荐)或^{}创建阶段时,您可以显式地提供params文件名作为前缀:

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是一个自定义参数文件

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

相关问题 更多 >

    热门问题