【问题标题】:extend list from default config in Hydra从 Hydra 中的默认配置扩展列表
【发布时间】:2023-01-23 04:17:18
【问题描述】:

我有一个在我的defaults 中定义的列表
配置文件base_list

list:
  - 1
  - 2

我知道我可以覆盖配置文件中的列表值:

defaults:
  - base_list
list:
  - 3
  - 4

结果

list:
- 3
- 4

但是,我正在寻找一种方法延长列表,所需的输出是:

list:
- 1
- 2
- 3
- 4

知道怎么做吗?

【问题讨论】:

    标签: fb-hydra


    【解决方案1】:

    这是不直接支持的。 但是,您可以使用内置的 OmegaConf 解析器 oc.dict.* 实现所需的行为。

    这些解析器允许您以列表的形式访问配置节点的键或值:

    cfg = OmegaConf.create(
        {
            "workers": {
                "node3": "10.0.0.2",
                "node7": "10.0.0.9",
            },
            "nodes": "${oc.dict.keys: workers}",
            "ips": "${oc.dict.values: workers}",
        }
    )
    # Keys are copied from the DictConfig:
    show(cfg.nodes)
    # -> type: ListConfig, value: ['node3', 'node7']
    # Values are dynamically fetched through interpolations:
    show(cfg.ips)
    # -> type: ListConfig, value: ['${workers.node3}', '${workers.node7}']
    assert cfg.ips == ["10.0.0.2", "10.0.0.9"]
    

    有了这个,你可以组成一个字典,并有一个节点来访问值或键,就好像它们是一个列表一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-04
      • 2017-09-15
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 2014-05-07
      相关资源
      最近更新 更多