Отключить вывод файлов в hydra

#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 в рабочем каталоге.

Разные функции имеют разные способы их отключения:

  1. Чтобы предотвратить создание рабочего каталога, вы можете переопределить hydra.run.dir . .
  2. Чтобы предотвратить сохранение файлов в .hydra, переопределить hydra.output_subdir значение null.
  3. Чтобы предотвратить создание файлов журнала, вы можете отключить вывод журнала 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. Это правильно?