1

目前,我有这个配置文件,我用它作为hydra/omegaconf的输入

db: 
  range: 
    - -10
    - 10

由于范围字段中的值与简单代数相关,因此我正在寻找一种将其编码到配置文件中的方法。从概念上讲,我想要这样的东西:

db: 
  db_val: 10
  range: 
    - (-1) * ${..db_val}
    - ${..db_val}

但这似乎不起作用。

4

2 回答 2

1

您可以定义一个自定义插值解析器

def symmetric_range(a):
  return (-a, a)

OmegaConf.register_resolver("symmetric_range", symmetric_range)

然后在你的配置文件中:

db: 
  range: ${symmetric_range:10}

或者

db:
  db_val: 10
  range: ${symmetric_range:${db_val}}
于 2021-11-22T12:17:47.663 回答
0

当前不支持 OmegaConf 配置中的算术运算。不过有功能要求支持它。

于 2021-06-27T17:04:36.367 回答