我正在使用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中
不同的功能有不同的禁用方法:
- 若要防止创建工作目录,可以将
hydra.run.dir
重写为.
- 要防止将文件保存到.hydra中,请将
hydra.output_subdir
重写为null - 为了防止创建日志文件,您可以禁用
hydra/hydra_logging
和hydra/job_logging
的日志输出,请参阅此
一个完整的例子可能看起来像:
$ python foo.py hydra.run.dir=. hydra.output_subdir=null hydra/job_logging=disabled hydra/hydra_logging=disabled
请注意,一如既往,您也可以通过配置文件覆盖这些配置值。