gpt4 book ai didi

python - 九头蛇 : access name of config file from code

转载 作者:行者123 更新时间:2023-12-02 18:26:34 31 4
gpt4 key购买 nike

我有一个配置树,例如:

config.yaml
model/
model_a.yaml
model_b.yaml
model_c.yaml

config.yaml 包含:

# @package _global_
defaults:
- _self_
- model: model_a.yaml

some_var: 42

我想从我的 python 代码或文件本身访问所使用的模型配置文件的名称(默认或覆盖)。像这样的东西:

@hydra.main(...)
def main(config):
model_name = config.model.__filename__

或(来自例如 model_a.yaml)

dropout: true
dense_layers: 128
model_name: ${__filename__}

提前致谢!

最佳答案

看看hydra.runtime.choices Configuring Hydra - Introduction 中提到的变量九头蛇文档的页面。此变量存储一个映射,该映射描述了 Hydra 在组成输出配置时所做的每个选择。

将上面的示例与默认列表中的 model: model_a.yaml 结合使用:

# my_app.py
import hydra
from pprint import pprint
from hydra.core.hydra_config import HydraConfig
from omegaconf import OmegaConf

@hydra.main(config_path=".", config_name="config")
def main(config):
hydra_cfg = HydraConfig.get()
print("choice of model:")
pprint(OmegaConf.to_container(hydra_cfg.runtime.choices))

main()

在命令行:

$ python3 app.py
choices used:
{'hydra/callbacks': None,
'hydra/env': 'default',
'hydra/help': 'default',
'hydra/hydra_help': 'default',
'hydra/hydra_logging': 'default',
'hydra/job_logging': 'default',
'hydra/launcher': 'basic',
'hydra/output': 'default',
'hydra/sweeper': 'basic',
'model': 'model_a.yaml'}

如您所见,在此示例中,配置选项 model_a.yaml 存储在位于 hydra_cfg.runtime.choices.model 的 Hydra 配置中。

关于python - 九头蛇 : access name of config file from code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70064901/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com