Расширение конфигураций FB Hydra ⇐ Python
Расширение конфигураций FB Hydra
Я пытаюсь использовать пакет Facebook Hydra для настройки проекта. В приведенном ниже примере я постарался сделать имена как можно более общими. Предположим, что существует несколько типов архитектуры модели (например, различные типы задач сегментации), которые пользователь может загрузить. Основное приложение загружает соответствующую модель с помощью ключа task в конфигурации модели.
Мое дерево файлов конфигурации выглядит так:
├── config.yaml ├── данные │ └── default.yaml ├── модель │ ├── задача_1 │ │ ├── base.yaml │ │ ├── вариант_1.yaml │ │ ├── вариант_2.yaml │ └── задача_2 │ ├── base.yaml │ ├── default.yaml │ ├── вариант_1.yaml Моя конфигурация по умолчанию содержит:
по умолчанию: - данные: по умолчанию - модель: задача_1/база Загрузка работает, и я получаю ключ model с содержимым файла конфигурации base.yaml.
Теперь предположим, что в базе есть ключ с именем config, который соответствует словарю гиперпараметров. Я хотел бы загрузить расширенную конфигурацию, например. variant_1.yaml, который расширяет эту конфигурацию и сохраняет исходные параметры в базовой конфигурации.
launch("config", overrides=["model=task_1/variant_1"])` В variant_1.yaml я пробовал:
по умолчанию: - база но это исключение:
MissingConfigException: в «модели/задаче_1/вариант_1»: не удалось загрузить «модель/базу». если вместо этого я использую task_1/base, то это работает, но тогда вся базовая конфигурация загружается как отдельный ключ словаря под названием task_1:
{ задача_1: {из базы}, конфиг: {... из варианта_1}} } а не:
{ ... config: {база, расширенная другими параметрами из варианта_1} } Как правильно наследовать такую вложенную структуру каталогов (или есть ли более канонический способ сделать это)? Документация Hydra, кажется, предполагает, что это просто, но я не могу понять это из примеров.
Я пытаюсь использовать пакет Facebook Hydra для настройки проекта. В приведенном ниже примере я постарался сделать имена как можно более общими. Предположим, что существует несколько типов архитектуры модели (например, различные типы задач сегментации), которые пользователь может загрузить. Основное приложение загружает соответствующую модель с помощью ключа task в конфигурации модели.
Мое дерево файлов конфигурации выглядит так:
├── config.yaml ├── данные │ └── default.yaml ├── модель │ ├── задача_1 │ │ ├── base.yaml │ │ ├── вариант_1.yaml │ │ ├── вариант_2.yaml │ └── задача_2 │ ├── base.yaml │ ├── default.yaml │ ├── вариант_1.yaml Моя конфигурация по умолчанию содержит:
по умолчанию: - данные: по умолчанию - модель: задача_1/база Загрузка работает, и я получаю ключ model с содержимым файла конфигурации base.yaml.
Теперь предположим, что в базе есть ключ с именем config, который соответствует словарю гиперпараметров. Я хотел бы загрузить расширенную конфигурацию, например. variant_1.yaml, который расширяет эту конфигурацию и сохраняет исходные параметры в базовой конфигурации.
launch("config", overrides=["model=task_1/variant_1"])` В variant_1.yaml я пробовал:
по умолчанию: - база но это исключение:
MissingConfigException: в «модели/задаче_1/вариант_1»: не удалось загрузить «модель/базу». если вместо этого я использую task_1/base, то это работает, но тогда вся базовая конфигурация загружается как отдельный ключ словаря под названием task_1:
{ задача_1: {из базы}, конфиг: {... из варианта_1}} } а не:
{ ... config: {база, расширенная другими параметрами из варианта_1} } Как правильно наследовать такую вложенную структуру каталогов (или есть ли более канонический способ сделать это)? Документация Hydra, кажется, предполагает, что это просто, но я не могу понять это из примеров.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Можно ли загрузить конфиги из файла для «динамической группы конфигураций» в Hydra?
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Можно ли загрузить конфиги из файла для «динамической группы конфигураций» в Hydra?
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-