#fb-hydra #hydra-python #omegaconf
#fb-hydra #hydra-python #omegaconf
Вопрос:
Я использую hydra для регистрации гиперпараметров экспериментов.
@hydra.main(config_name="config", config_path="../conf")
def evaluate_experiment(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))
...
Иногда я хочу выполнить пробный запуск, чтобы что-то проверить. Для этого мне не нужны какие-либо сохраненные параметры, поэтому мне интересно, как я могу полностью отключить сохранение в файловой системе в этом случае?
Комментарии:
1. Я не понимаю, что вы подразумеваете под «это снова регистрирует параметры».
2. Извините за то, что я не уточнил. Я обновил вопрос. Главный вопрос заключается в том, «Как полностью отключить ведение журнала в файловой системе при использовании hydra».
3. Ваш вопрос неверен. использование compose не настраивает ведение журнала. Если вы считаете, что это так, пожалуйста, откройте проблему с минимальным воспроизведением.
4. @OmryYadan Вы абсолютно правы. Я допустил ошибку и обновил вопрос. Но главный вопрос остается тем же.
Ответ №1:
Существует запрос на улучшение, предназначенный для Hydra 1.1, для поддержки отключения управления рабочими каталогами. Управление рабочими каталогами делает много вещей:
- Создание рабочего каталога для запуска
- Изменение рабочего каталога на созданный каталог.
Существуют и другие связанные функции:
- Сохранение файлов журнала
- Сохранение файлов, таких как config.yaml и hydra.yaml в .hydra в рабочем каталоге.
Разные функции имеют разные способы их отключения:
- Чтобы предотвратить создание рабочего каталога, вы можете переопределить
hydra.run.dir
.
. - Чтобы предотвратить сохранение файлов в .hydra, переопределить
hydra.output_subdir
значение null. - Чтобы предотвратить создание файлов журнала, вы можете отключить вывод журнала
hydra/hydra_logging
в иhydra/job_logging
, см. Это.
Полный пример может выглядеть так:
$ python foo.py hydra.run.dir=. hydra.output_subdir=null hydra/job_logging=disabled hydra/hydra_logging=disabled
Обратите внимание, что, как всегда, вы также можете переопределить эти значения конфигурации через свой конфигурационный файл.
Комментарии:
1. опубликованные вами ссылки теперь не работают
Ответ №2:
Ответ от Омри Ядана хорошо работает, если вы хотите решить эту проблему с помощью CLI. Однако вы также можете добавить эти флаги в свой конфигурационный файл, чтобы вам не приходилось вводить их каждый раз при запуске скрипта. Если вы хотите пойти по этому пути, убедитесь, что вы добавили следующие элементы в свой корневой конфигурационный файл:
defaults:
- _self_
- override hydra/hydra_logging: disabled
- override hydra/job_logging: disabled
hydra:
output_subdir: null
run:
dir: .
Комментарии:
1. Здравствуйте, большое вам спасибо за разъяснение. В моем конкретном случае я бы хотел, чтобы ведение журнала отображалось в терминале, но не создавало файлы. Кроме того, я бы хотел, чтобы журнал был цветным. Поле hydra будет таким же, но по умолчанию будет задано значение colorlog. Это правильно?