You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在hydra-python结构化配置中如何实现值插值以设置工作目录?

Hydra 1.1 结构化配置实现值插值(自定义工作目录示例)

结构化配置的插值语法和YAML完全兼容,直接按照以下步骤实现即可:

  • 导入所需依赖
  • 定义业务配置结构体并覆盖Hydra工作目录配置
  • 注册配置到配置存储
  • 启动Hydra应用

完整实现代码如下:

from dataclasses import dataclass
import hydra
from hydra.core.config_store import ConfigStore
from hydra.conf import RunConfig as HydraRunConfig
from omegaconf import DictConfig

# 自定义业务运行配置,对应YAML中的run节点
@dataclass
class UserRunConfig:
    dir: str = "outputs"
    name: str = "try1"

# 根配置结构体
@dataclass
class RootConfig:
    run: UserRunConfig = UserRunConfig()
    # 直接在dataclass字段中使用插值表达式,和YAML写法完全一致
    hydra: HydraRunConfig = HydraRunConfig(
        dir="${run.dir}/${run.name}"
    )

# 注册配置到Hydra配置存储
cs = ConfigStore.instance()
cs.store(name="base_config", node=RootConfig)

@hydra.main(version_base="1.1", config_name="base_config")
def main(cfg: DictConfig) -> None:
    # 验证工作目录配置结果
    run_dir = hydra.core.hydra_config.HydraConfig.get().run.dir
    print(f"当前运行工作目录为: {run_dir}") # 输出为 outputs/try1

if __name__ == "__main__":
    main()

额外说明:如果是多轮sweep场景,仅需将插值表达式配置到HydraSweepConfig的dir字段即可,语法规则完全相同。

内容的提问来源于stack exchange,提问作者nzer0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:39:00