微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将配置节点列表设置为 yaml 中的值条目,与 Hydra 中的结构化配置形成对比

如何解决将配置节点列表设置为 yaml 中的值条目,与 Hydra 中的结构化配置形成对比

我想获取配置列表作为(认)值条目 并使用结构化架构来验证输入列表。

例如,在 trainer.yaml 中:

defaults:
  - callbacks:
    - checkpointer
    - early_stopping

callbacks/checkpointer.yamlcallbacks/early_stopping.yaml 中,我有一个链接到适当的结构化配置作为认值,例如:

# callbacks/checkpointer.yaml
defaults:
  - /trainer_lib/callbacks/base_checkpointer@_here_

结构化架构:

@dataclass
class CheckpointerConfig:
    _target_: str = "some_library_class"
    data_dir: str = "folder"

@dataclass
class TrainerConfig:
   callbacks: List[Any] = MISSING

和配置存储:

cs = ConfigStore.instance()
cs.store(group="trainer_lib/callbacks",name="base_checkpointer",node=CheckpointerConfig)

我不确定实现此目的的正确语法是什么(我尝试失败)。我得到一个 omegaconf.errors.ConfigTypeError: Cannot merge DictConfig with ListConfig

有没有办法做到这一点?谢谢。

解决方法

在本Hydra issue中讨论此主题。

,

您在使用 Hydra 1.0 吗?这实际上在 Hydra 1.1 中得到支持。这是文档:https://hydra.cc/docs/next/patterns/select_multiple_configs_from_config_group

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。