首页 > 解决方案 > 禁用 hydra 的文件输出

问题描述

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

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

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

标签: fb-hydrahydra-pythonomegaconf

解决方案


有一个针对 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

推荐阅读