如果未找到主插值键,则默认使用不同的插值配置

问题描述 投票:0回答:1

我有一个非常复杂的

hydra
申请,用于微调法学硕士。我有一个
data_preparation
配置组,它既用作离线数据处理的主要配置组,又用作训练器中用于在推理过程中动态处理数据的配置组。因此,我的配置中某些成员的插值路径在两个设置之间发生变化。我想知道如果找不到主键,是否可以使用备用键进行插值。我尝试过一些类似的事情
omegaconf

由于无法解析 
cache_path: ${oc.select:${data_path}/invocations_cache.json,${data_preparation.data_path}/invocations_cache.json}

并且未尝试解析默认值,因此失败并出现 InterpolationKeyError。

这可能吗?

fb-hydra omegaconf
1个回答
0
投票
oc.select

OmegaConf.select() 的包装器。如果密钥不存在,则需要一个密钥和一个默认值来使用。 我看到两个选项:

    确保该键存在,但将默认值设置为您实际想要回退到的值的插值。
  1. 实现您自己的
  2. 自定义解析器

    来执行您想要的操作。

  3. 我建议您选择选项 1。

© www.soinside.com 2019 - 2024. All rights reserved.