【发布时间】:2021-07-20 21:11:41
【问题描述】:
让我们假设一个配置组foo 和配置文件组织在以下目录结构中:
conf
├── foo
│ ├── bar
│ │ ├── a.yaml
│ │ ├── b.yaml
│ │ ├── c.yaml
│ └── baz
│ ├── d.yaml
│ ├── e.yaml
│ └── f.yaml
每个 yaml 文件都使用 # @package foo 将包设置为 foo。当运行相应的应用程序时,我可以简单地通过指定foo=bar/a 或foo=baz/f 来覆盖foo。因此,子目录bar 和baz 表示具有更大可能配置集的某个类别。
虽然这对于 hydra 中的标准使用效果很好,但 hydra 的一些更高级的功能似乎与此结构不兼容。例如,我想将 glob 与 foo=glob(bar/*) 这样的目录结构结合使用,以扫描某个类别的所有配置。但是,这似乎不起作用,因为 glob 在此示例中找不到任何配置。此外,如果我将无效配置分配给 foo 并且 hydra 列出了可用选项,则列表为空。
这让我想知道在配置组中进行结构化是否是 hydra 中普遍支持的功能,只是一些极端情况尚未涵盖,或者我是否错误地使用了 hydra 并且不应该使用目录来组织组中的配置?
【问题讨论】:
标签: fb-hydra