将配置节点列表设置为 yaml 中的值条目,与 Hydra 中的结构化配置形成对比
Set list of config nodes as value entries in yaml contrasting with structured configs in Hydra
我想获取配置列表作为(默认)值条目
并使用结构化模式来验证输入列表。
例如,在 trainer.yaml
中:
defaults:
- callbacks:
- checkpointer
- early_stopping
在callbacks/checkpointer.yaml
和callbacks/early_stopping.yaml
中,我有一个link来将结构化配置作为默认值,例如:
# 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 1.0 吗?这实际上在 Hydra 1.1 中得到支持。这是文档:https://hydra.cc/docs/next/patterns/select_multiple_configs_from_config_group
此Hydra issue中对此主题的讨论。
我想获取配置列表作为(默认)值条目 并使用结构化模式来验证输入列表。
例如,在 trainer.yaml
中:
defaults:
- callbacks:
- checkpointer
- early_stopping
在callbacks/checkpointer.yaml
和callbacks/early_stopping.yaml
中,我有一个link来将结构化配置作为默认值,例如:
# 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 1.0 吗?这实际上在 Hydra 1.1 中得到支持。这是文档:https://hydra.cc/docs/next/patterns/select_multiple_configs_from_config_group
此Hydra issue中对此主题的讨论。