如何在 hydra-python 中创建来自同一组的两个字段?
How to create two fields from the same group in hydra-python?
我的配置文件结构:
config
├── train_dataset
│ ├── adobe5k.yaml
│ ├── my_train_data1.yaml
│ └── cifar10.yaml
├── valid_dataset
│ ├── adobe5k.yaml
│ └── cifar10.yaml
└── config.yaml
而我的 config.yaml
是:
# other configs
...
defaults:
- train_dataset: adobe5k
- valid_dataset: adobe5k
如您所见,我的配置中有 2 个名为 valid_dataset
和 train_dataset
的字段,其值是从其自己的配置组中选择的。两个字段的值从同一个组中选取,应该怎么做?
您可以使用默认列表插值来实现。 Default List page high level information and you find a more practical example here一些细节。
defaults:
- train_dataset: adobe5k
- valid_dataset: ${train_dataset}
这样,您覆盖 train_dataset 就足够了,验证数据集会自动匹配它(除非您也覆盖它)。
您可以使用 a config group more than once。假设您将数据集配置移动到单个 datasets
目录中。然后您可以按如下方式重新使用它们。
- defaults:
- datasets@train_dataset: adobe5k
- datasets@valid_dataset: adobe5k
我的配置文件结构:
config
├── train_dataset
│ ├── adobe5k.yaml
│ ├── my_train_data1.yaml
│ └── cifar10.yaml
├── valid_dataset
│ ├── adobe5k.yaml
│ └── cifar10.yaml
└── config.yaml
而我的 config.yaml
是:
# other configs
...
defaults:
- train_dataset: adobe5k
- valid_dataset: adobe5k
如您所见,我的配置中有 2 个名为 valid_dataset
和 train_dataset
的字段,其值是从其自己的配置组中选择的。两个字段的值从同一个组中选取,应该怎么做?
您可以使用默认列表插值来实现。 Default List page high level information and you find a more practical example here一些细节。
defaults:
- train_dataset: adobe5k
- valid_dataset: ${train_dataset}
这样,您覆盖 train_dataset 就足够了,验证数据集会自动匹配它(除非您也覆盖它)。
您可以使用 a config group more than once。假设您将数据集配置移动到单个 datasets
目录中。然后您可以按如下方式重新使用它们。
- defaults:
- datasets@train_dataset: adobe5k
- datasets@valid_dataset: adobe5k