禁用hydra的文件输出



我正在使用hydra来记录实验的超参数。

@hydra.main(config_name="config", config_path="../conf")
def evaluate_experiment(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))
...

有时我想做一次预演来检查一些东西。为此,我不需要任何保存的参数,所以我想知道在这种情况下如何完全禁用对文件系统的保存?

如果您想使用CLI解决此问题,Omry Yadan的答案会很有效。但是,您也可以将这些标志添加到配置文件中,这样您就不必每次运行脚本时都键入它们。如果你想走这条路,请确保在根配置文件中添加以下项目:

defaults:  
- _self_  
- override hydra/hydra_logging: disabled  
- override hydra/job_logging: disabled  

hydra:  
output_subdir: null  
run:  
dir: .

有一个针对Hydra 1.1的增强请求,支持禁用工作目录管理。工作目录管理可以做很多事情:

  • 为运行创建工作目录
  • 将工作目录更改为创建的目录

还有其他相关功能:

  • 保存日志文件
  • 将config.yaml和hydra.yaml等文件保存到工作目录中的.hydra中

不同的功能有不同的禁用方法:

  1. 若要防止创建工作目录,可以将hydra.run.dir重写为.
  2. 要防止将文件保存到.hydra中,请将hydra.output_subdir重写为null
  3. 为了防止创建日志文件,您可以禁用hydra/hydra_logginghydra/job_logging的日志输出,请参阅此

一个完整的例子可能看起来像:

$ python foo.py hydra.run.dir=. hydra.output_subdir=null hydra/job_logging=disabled hydra/hydra_logging=disabled

请注意,一如既往,您也可以通过配置文件覆盖这些配置值。

相关内容

  • 没有找到相关文章

最新更新