禁用 hydra 的文件输出
Disable file output of hydra
我正在使用 hydra 记录实验的超参数。
@hydra.main(config_name="config", config_path="../conf")
def evaluate_experiment(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))
...
有时我想干运行检查一些东西。为此,我不需要任何保存的参数,所以我想知道在这种情况下如何完全禁用对文件系统的保存?
有一个针对 Hydra 1.1 的 enhancement request 以支持禁用工作目录管理。
工作目录管理正在做很多事情:
- 正在为 运行
创建一个工作目录
- 正在将工作目录更改为创建的目录。
还有其他相关功能:
- 正在保存日志文件
- 将 config.yaml 和 hydra.yaml 等文件保存到工作目录中的 .hydra 中。
不同的功能有不同的禁用方法:
- 要防止创建工作目录,您可以将
hydra.run.dir
覆盖为 .
。
- 要防止将文件保存为 .hydra,override
hydra.output_subdir
to null。
- 要防止创建日志文件,您可以禁用
hydra/hydra_logging
和 hydra/job_logging
的日志输出,请参阅 this。
一个完整的示例可能如下所示:
$ python foo.py hydra.run.dir=. hydra.output_subdir=null hydra/job_logging=disabled hydra/hydra_logging=disabled
如果您想使用 CLI 解决这个问题,Omry Yadan 的答案很有效。但是,您也可以将这些标志添加到您的配置文件中,这样您就不必在每次 运行 您的脚本时都输入它们。如果你想走这条路,请确保在你的根配置文件中添加以下项目:
defaults:
- _self_
- override hydra/hydra_logging: disabled
- override hydra/job_logging: disabled
hydra:
output_subdir: null
run:
dir: .
我正在使用 hydra 记录实验的超参数。
@hydra.main(config_name="config", config_path="../conf")
def evaluate_experiment(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))
...
有时我想干运行检查一些东西。为此,我不需要任何保存的参数,所以我想知道在这种情况下如何完全禁用对文件系统的保存?
有一个针对 Hydra 1.1 的 enhancement request 以支持禁用工作目录管理。 工作目录管理正在做很多事情:
- 正在为 运行 创建一个工作目录
- 正在将工作目录更改为创建的目录。
还有其他相关功能:
- 正在保存日志文件
- 将 config.yaml 和 hydra.yaml 等文件保存到工作目录中的 .hydra 中。
不同的功能有不同的禁用方法:
- 要防止创建工作目录,您可以将
hydra.run.dir
覆盖为.
。 - 要防止将文件保存为 .hydra,override
hydra.output_subdir
to null。 - 要防止创建日志文件,您可以禁用
hydra/hydra_logging
和hydra/job_logging
的日志输出,请参阅 this。
一个完整的示例可能如下所示:
$ python foo.py hydra.run.dir=. hydra.output_subdir=null hydra/job_logging=disabled hydra/hydra_logging=disabled
如果您想使用 CLI 解决这个问题,Omry Yadan 的答案很有效。但是,您也可以将这些标志添加到您的配置文件中,这样您就不必在每次 运行 您的脚本时都输入它们。如果你想走这条路,请确保在你的根配置文件中添加以下项目:
defaults:
- _self_
- override hydra/hydra_logging: disabled
- override hydra/job_logging: disabled
hydra:
output_subdir: null
run:
dir: .