get_original_cwd() 函数仍会初始化。你能帮我吗?

问题描述 投票:0回答:1
尽管我认为我的代码已经初始化,但

hydora 中的 get_original_cwd() 函数请求初始化。

你能帮我吗?

  • 显示我的错误的最小代码。
import os

import hydra
from hydra.core.utils import setup_globals
from hydra.utils import get_original_cwd
from omegaconf import OmegaConf

with hydra.initialize(config_path="conf", version_base=None):
    cfg = hydra.compose(config_name="try_config")
print(OmegaConf.to_yaml(cfg))
# reinitialize hydra
setup_globals()
output_dir = get_original_cwd()  # ValueError: get_original_cwd() must only be used after HydraConfig is initialized
os.makedirs(output_dir, exist_ok=True)
with open(os.path.join(output_dir, "result.txt"), "w") as f:
    f.write("Test")
  • 错误

    ValueError: get_original_cwd() must only be used after HydraConfig is initialized

  • try_config.yaml

a: 1
b: 2
hydra:
  run:
    dir: "outputs"
python
1个回答
0
投票

我将代码更改为以下。我想按类结构编写代码。也许代码满足了我的要求和九头蛇设计(规范)。

import hydra
from omegaconf import DictConfig

@hydra.main(config_path="conf",config_name="config")
def under_hydra(cfg:DictConfig):
   Test(cfg_para=cfg,hydra_cfg=HydraConfig().get())
© www.soinside.com 2019 - 2024. All rights reserved.