如何在配置中多次重用一个包?
How to reuse a package multiple times in a config?
我有一个通用的摄像头配置 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
我可以看到两个可能的选项:
- 在 Hydra 中你可以试试:extending configs and select_multiple_configs_from_config_group
基本上,您可以让 cam1 和 cam2 都从 any_camera 扩展并具有特定的覆盖。
然后在all_cameras.yaml中,你可以select多个配置组来拥有配置列表。
- 您还可以查看 omegaconf 的 node interpolation。但这可能需要您更改凸轮配置的结构。
多次使用相同配置的规范答案是覆盖配置包。
defaults:
- server/db@src: mysql
- server/db@dst: mysql
会在config对象的两个地方,src和dst中得到server/db/mysql.yaml的内容。
请参阅包页面中的 this 部分。
我有一个通用的摄像头配置 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
我可以看到两个可能的选项:
- 在 Hydra 中你可以试试:extending configs and select_multiple_configs_from_config_group
基本上,您可以让 cam1 和 cam2 都从 any_camera 扩展并具有特定的覆盖。 然后在all_cameras.yaml中,你可以select多个配置组来拥有配置列表。
- 您还可以查看 omegaconf 的 node interpolation。但这可能需要您更改凸轮配置的结构。
多次使用相同配置的规范答案是覆盖配置包。
defaults:
- server/db@src: mysql
- server/db@dst: mysql
会在config对象的两个地方,src和dst中得到server/db/mysql.yaml的内容。
请参阅包页面中的 this 部分。