目前,我有这个配置文件,我用它作为hydra/omegaconf的输入
db:
range:
- -10
- 10
由于范围字段中的值与简单代数相关,因此我正在寻找一种将其编码到配置文件中的方法。从概念上讲,我想要这样的东西:
db:
db_val: 10
range:
- (-1) * ${..db_val}
- ${..db_val}
但这似乎不起作用。
您可以定义一个自定义插值解析器:
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}}
当前不支持 OmegaConf 配置中的算术运算。不过有功能要求支持它。