【问题标题】:Set a structured config as node value for an attribute in yaml configuration file将结构化配置设置为 yaml 配置文件中属性的节点值
【发布时间】:2021-05-12 08:26:06
【问题描述】:

我想将结构化配置设置为某些条目的默认节点值。 我不知道如何做到这一点。我尝试了以下方法:

defaults:
  - trainer: /trainer_lib/trainer/base_trainer"

/trainer_lib/trainer/base_trainer 在我的脚本中已添加到 ConfigStore。

我能够正确初始化它的唯一方法是通过

defaults:
  - trainer: some_trainer

并在trainer/some_trainer.yaml 中写入默认值/trainer_lib/trainer/base_trainer@_here_

有没有一种方法可以让我跳过创建trainer/some_trainer.yaml 文件?谢谢。

【问题讨论】:

    标签: fb-hydra hydra-python


    【解决方案1】:

    查看Structured Configs tutorial。特别是Structured Config Schema 页面。

    请注意,Hydra 1.1(作为开发版本提供)对这种事情有更强大的支持。在下一个version查看同一页面。

    【讨论】:

    • 我已经查看了 Hydra 1.1 中的结构化配置模式,这是我正在使用的版本。在您链接的文档中,没有“键:值”的示例,其中“值”是结构化节点配置(例如,“培训师:/trainer_lib/trainer/base_trainer@_here_”)。我希望这能澄清我的问题。谢谢。
    • Omry,感谢您的回答,尽管我认为它并没有具体回应我的要求。我想在不创建新文件夹组的情况下将结构化配置用作“键:值”条目中的值。那可能吗?您链接的示例并未显示这一点。谢谢。
    • 您可以使用结构化配置作为配置,您可以使用它们来验证 yaml 文件。请参阅结构化配置教程。 “结构化配置架构”之前的所有页面都没有 yaml 文件。
    • 好的。我想要用于验证 yaml 文件的结构化配置,也可以直接在父 yaml 中填充配置组的条目,而无需创建新文件夹。我想我想使用的语法不受支持。感谢您最后的澄清。
    • 是的。有点难以理解你在追求什么,但从你的描述我怀疑它不受支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 2020-02-18
    • 2017-02-16
    • 1970-01-01
    • 2016-02-05
    相关资源
    最近更新 更多