如何在DVC中引用自定义参数文件?(适配模板与字典展开)
在DVC中引用自定义参数文件的方法
默认情况下DVC会读取params.yaml里的参数,但如果要使用自定义参数文件(比如config/my_params.json),只需要在指定参数时带上文件路径前缀,就能沿用模板引用和字典展开的逻辑。
假设config/my_params.json的内容如下:
{ "group": { "param_one": "custom_value" }, "global_param": "test_value" }
模板引用(单个参数)
不管是在命令行还是dvc.yaml配置里,先通过-p(或params字段)指定带路径的参数,再用${}引用具体项:
命令行方式
dvc run -p config/my_params.json:group.param_one python script.py --param_one ${group.param_one}
dvc.yaml配置方式
cmd: python script.py --param_one ${group.param_one} params: - config/my_params.json:group.param_one
字典展开(整个参数组)
如果要把整个参数组直接传递给脚本,同样先指定带路径的参数组,再用${}引用整个分组:
命令行方式
dvc run -p config/my_params.json:group python script.py ${group}
这样脚本会收到--param_one custom_value格式的参数(和默认params.yaml的字典展开逻辑一致)。
dvc.yaml配置方式
cmd: python script.py ${group} params: - config/my_params.json:group
引用整个文件的所有参数
如果需要用到文件里的全部参数,直接指定文件路径即可:
命令行方式
dvc run -p config/my_params.json python script.py --param_one ${group.param_one} --global ${global_param}
dvc.yaml配置方式
cmd: python script.py --param_one ${group.param_one} --global ${global_param} params: - config/my_params.json
内容的提问来源于stack exchange,提问作者Mark Loyman
相关产品推荐
相关产品推荐

