【问题标题】:arithmetic manipulations in YAML configuration file with omegaconf使用 omegaconf 在 YAML 配置文件中进行算术操作
【发布时间】:2021-09-09 23:58:01
【问题描述】:

目前,我有这个配置文件,我将其用作 hydra/omegaconf

的输入
db: 
  range: 
    - -10
    - 10

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

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

但这似乎不起作用。

【问题讨论】:

    标签: python fb-hydra omegaconf


    【解决方案1】:

    你可以定义一个自定义的interpolation resolver:

    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}}
    

    【讨论】:

      【解决方案2】:

      目前不支持 OmegaConf 配置中的算术运算。 不过有feature request 支持。

      【讨论】:

        猜你喜欢
        • 2019-01-20
        • 2014-10-20
        • 1970-01-01
        • 1970-01-01
        • 2017-01-26
        • 1970-01-01
        • 1970-01-01
        • 2017-11-17
        • 1970-01-01
        相关资源
        最近更新 更多