hydra.run.dir=XXX
コマンドラインから設定することで、configの作業ディレクトリを変更できることを知っています。しかし、設定したディレクトリにログも保存されるように、CLI 引数を使用せずにスクリプトから適切に実行するにはどうすればよいですか?
次の理由により、このコードは機能しません。
- ディレクトリを変更しようとすると、ヒドラとそのロガーはすでに初期化されています
- そのような属性はありません
cfg.hydra
。
UPD : コメントにポインタがありました。if __name__ == 'main':
ヒドラが呼び出される前に、ブロック内のヒドラ パラメーターを変更できます。hydra.run.dir
しかし、スクリプトからアクセスして変更するにはどうすればよいでしょうか?
@hydra.main(config_path="conf", config_name="config")
def main(cfg):
cfg.hydra.run.dir = "./c_out/cached_loss" # no such attribute
logger.info('I log something')
私のヒドラ設定は次のようになります。
defaults:
- hydra/job_logging: custom_logging
# hydra/custom_logging.yaml
# python logging configuration for tasks
version: 1
formatters:
simple:
format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
handlers:
console:
class: logging.StreamHandler
formatter: simple
stream: ext://sys.stdout
file:
class: logging.FileHandler
formatter: simple
# relative to the job log directory
filename: ${hydra.job.name}.log
root:
level: INFO
handlers: [console, file]
disable_existing_loggers: false