在命令行中指定配置名称时,Hydra运行时类型检查不起作用

2024-10-05 12:18:26 发布

您现在位置:Python中文网/ 问答频道 /正文

在不带任何参数的情况下运行脚本时,以下代码段按预期工作(由于配置中缺少参数,执行停止):

if __name__ == '__main__':

    config_name = "csv_images_test"

    cs = ConfigStore.instance()
    cs.store(name=config_name, node=Config)

    @hydra.main(config_path="/hdd/twapi/configs/", config_name=config_name)
    def main(cfg: Config) -> None:
        print(OmegaConf.to_yaml(cfg))

    main()

然而,当我通过命令行指定此配置名称时,似乎没有进行类型检查:

python /hdd/twapi/src/config_structure.py --config-name=/hdd/twapi/configs/csv_images_test.yaml

Tags: csvnametestconfigyaml参数main情况
1条回答
网友
1楼 · 发布于 2024-10-05 12:18:26

在Hydra 1.0中,当配置和匹配的模式共享相同的名称时,它们之间的匹配会自动发生。 这被记录在案here

Hydra 1.1仍在开发中,它改变了这种行为,支持更灵活地使用默认列表来匹配模式和配置。 见this

这是因为Hydra 1.1中实现了新的默认列表,它支持任意配置中的默认列表,而不仅仅是主配置中的默认列表

了解更多信息here

您可以尝试Hydra 1.1开发版本(最新版本为1.1.0dev4)。有关安装说明,请参阅Hydra的主要自述文件

相关问题 更多 >

    热门问题