是否可以插入配置组?我的目的是从其他键中插入组的键,在本例中:根据数据集名称和数据集版本选择数据集的配置组(例如,如果数据集来自竞赛,这可能是数据集的任务之一)竞赛)。使用 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
不。配置组插值是一种特殊的实现,与普通插值不同,只能访问其他配置组。 原因是配置组决定了配置的构造方式,因此不能使用构造的配置中的值。
请参阅this文档部分了解更多信息。 使用此处描述的模式后,您应该能够实现与您类似的目标。