0

我有一个通用的摄像头配置 yaml,通常在特定摄像头之间唯一改变的是 IP 地址。某些字段(在以下示例中fps)保持不变。

我可以在 Hydra/OmegaConf 中做这样的事情吗?

any_camera.yaml

any_camera:
  stream_url: ???
  fps: 25

all_cameras.yaml

all_cameras:
  cam1:
    @{any_camera}
    stream_url: rtsp://10.0.0.1

  cam2:
    @{any_camera}
    stream_url: rtsp://10.0.0.2

4

2 回答 2

1

多次使用相同配置的规范答案是覆盖配置包。

defaults:
 - server/db@src: mysql
 - server/db@dst: mysql

会导致config对象src和dst两个地方的server/db/mysql.yaml的内容。

请参阅软件包页面中的部分。

于 2021-06-12T06:51:11.580 回答
1

我可以看到两个潜在的选择:

  1. 在 Hydra 中,您可以尝试: 扩展配置select_multiple_configs_from_config_group

基本上,您可以让 cam1 和 cam2 都从 any_camera 扩展并具有特定的覆盖。然后在 all_cameras.yaml 中,你可以选择多个配置组来拥有配置列表。

  1. 您还可以查看 omegaconf 的节点插值。但这可能需要您更改 cam 配置的结构。
于 2021-06-11T16:44:28.907 回答