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



下面的代码片段在没有任何参数的情况下运行脚本(由于配置中缺少参数而停止执行):

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

在Hydra 1.0中,配置和匹配的模式之间的匹配在它们共享相同的名称时自动发生。

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

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

点击这里了解更多信息。

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

最新更新