如何解决将配置节点列表设置为 yaml 中的值条目,与 Hydra 中的结构化配置形成对比
我想获取配置列表作为(默认)值条目 并使用结构化架构来验证输入列表。
例如,在 trainer.yaml
中:
defaults:
- callbacks:
- checkpointer
- early_stopping
在 callbacks/checkpointer.yaml
和 callbacks/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 举报,一经查实,本站将立刻删除。