从用 hydra.main() 修饰的函数返回配置

问题描述

是否可以从@hydra.main 装饰器下的函数获取配置对象作为字典的选项?

我试过这样的事情,但它返回

@hydra.main(config_path="conf",config_name="config")
def my_app(cfg) -> dict:
    print(cfg) # --> work,the cfg object exists inside the function scope
    return cfg
a = my_app()
print(a)

我知道我可以使用 compose API,但我不想使用它,因为它的功能有限(Tab 补全、Multirun 等)

解决方法

没有。 @hydra.main() 不会有意返回值。 (如果您使用 --multirun 并且您的函数多次返回,您希望返回值是什么?)

@hydra.main 函数中调用逻辑并将 cfg 对象传递给它。