python - 在 dvc 2.0 中使用其他配置中的参数
问题描述
使用 dvc 版本 2.0.18 和 python 3.9.2 在配置dvc.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'.
我错过了什么?模板功能完全可以做到这一点吗?
解决方案
我认为在这种情况下您不需要模板功能。如本例所示:
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
此外,当您使用(不推荐)或创建阶段时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
是一个自定义参数文件。
请让我知道它是否解决了问题,如果您有任何其他问题:)
推荐阅读
- c# - 移动 PictureBox BackgroundImage 丢弃透明度
- excel - 将打开文件的人的用户名插入超链接
- asp.net - 将客户端 Blazor 添加到现有 ASP.NET MVC5 应用
- performance - 即使在安装了 Jmeter 安全证书后也有证书问题
- html - 纯 CSS 解决方案,用于在其父级之间存在悬停间隙时保持子级显示
- php - Laravel 获取关系返回错误数据
- dictionary - 当我尝试从 @agm/core/services/google-maps-types 导入 {google} 时出现此错误
- python - 从嵌套字典中递归删除 None 值或 None 键
- c# - 如何在将文本添加到 Xamarin 表单中的条目之前加载视图
- wordpress - FacetWP 地图更改地图标记基于方面选择