fb-hydra - Hydra:使用 Compose API 覆盖 hydra.run.dir/working 目录管理
问题描述
我正在尝试使用 Hydra 的compose API以编程方式而不是通过 CLI 启动运行。这在大多数情况下都有效。但是,在使用 compose API 时,覆盖hydra.run.dir
更改基本目录似乎没有效果。IE:
with hydra.experimental.initialize_config_module(config_module=config_module):
cfg = hydra.experimental.compose(
config_name=config_name,
overrides=["hydra.run.dir=/tmp/workdir", ...],
return_hydra_config=True
)
hydra.core.hydra_config.HydraConfig.instance().set_config(cfg)
with omegaconf.open_dict(cfg):
del cfg["hydra"]
生成DictConfig
带有 的适当条目的a hydra.run.dir
,但工作目录未更改。
compose API 文档指出,不使用@hydra.main
意味着放弃 Hydra 的工作目录管理。有解决方法吗?
解决方案
Compose API 是无状态的,有意不更改工作目录、配置日志记录或更改全局状态,也不与命令行集成。如果您需要这些功能,您应该考虑使用@hydra.main()
.
作为一种解决方法,您可以最终以编程方式调用 chdir(使用os.chdir)。您可能还需要先 mkdir。
推荐阅读
- r - R 中的 Prop.test 和 Fisher 精确检验
- java - cypher-dsl java 展开集合
- docker - 如何使用 swag 反向代理域根目录中的 docker 映像和子域中的另一个映像?
- python - json.decoder.JSONDecodeError:期望用双引号括起来的属性名称:第 2 行第 2 列(字符 3)
- vuejs2 - vue.js 将方法从 .vue 移动到 vuex 商店
- python - Numpy 空列表类型推断
- reactjs - 排序日期抛出异常 TypeError: data.createdAt.sort is not a function
- azure - Azure Function App Consumption ,使用 Azure Blob Storage V1 或 V2
- bash - `set -o posix` 在 WSL2 Ubuntu 20.04 上的 Bash 5.0.17 中不起作用
- android - ANDROIDMK 翻译错误:Android.bp 中不支持包含