Hydra / OmegaConf:配置组的插值

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

是否可以插入配置组?我的目的是从其他键中插入组的键,在本例中:根据数据集名称和数据集版本选择数据集的配置组(例如,如果数据集来自竞赛,这可能是数据集的任务之一)竞赛)。使用 Hydra 的结构化配置,我的想法是这样的:

@dataclass
class MainConfig(DictConfig):
   dataset_name: str
   dataset_version: str
   dataset_group: ${.dataset_name}_${.dataset_version}

@dataclass
cass MyDatasetPart1Config(DictConfig):
   paths: dict[str, str]

cs = ConfigStore.instance()
cs.store(name="config", node=MainConfig)
cs.store(group="dataset", name="mydataset_part1", node=MyDatasetPart1Config)

def main() ...
if __name__ == "__main__" ...

然后就可以像这样调用群组了

>>> python myapp.py dataset_name=mydataset version=part1

希望能达到和我使用的一样的效果

>>> python myapp.py dataset_group=mydataset_part1
python fb-hydra omegaconf
1个回答
0
投票

不。配置组插值是一种特殊的实现,与普通插值不同,只能访问其他配置组。 原因是配置组决定了配置的构造方式,因此不能使用构造的配置中的值。

请参阅this文档部分了解更多信息。 使用此处描述的模式后,您应该能够实现与您类似的目标。

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