hydra

sea·2023년 9월 24일
0

Introduction

argument가 복잡할수록 구조화 및 관리가 힘들기 때문에 별도의 config 파일을 프로그램으로 작성하여 관리하는 방법

  • configuration을 모듈로 세분화해 관리 가능

  • 미리 정의한 configuration을 hydra 환경에서 사용

  • 실행된 hydra 환경에서의 실행기록을 outputs/날짜/시간/.hydra/config.yaml에 저장

  • 어떤 configuration을 사용했는지 모두 기록해 실험관리에 도움됨

    config.yaml

  • configs의 main 역할

  • 각 모듈에서 선택하고 싶은 yaml을 defaults를 통해 저장 가능

  • 별도 조작이 없으면 defaults에 지정된 yaml이 사용됨

python src/train.py models = lighthbm # lightgbm.yaml이 로드됨(config)   
  python src/train.py models = lightgbm  # lightgbm.yaml 이 모두 불러와진다. 

  (config)
  • 다른 모듈의 변수들을 참조 가능하기 때문에 공통되는 변수는 여기에 선언하는 것을 추천 (parameter)

    변수 참조 바업

    -변수 참조 방법
    - ${변수} 형태
    - 이때 config.yaml(main config)의 변수는 폴더명 없이 참조 가능
    - 다른 폴더의 변수를 참고하기 위해서는 ${폴더명.변수명}

# config.yaml의 monitor 참조
monitor:${monitor}
# model 폴더의 yaml들이 data 폴더의 num_classes 변수를 참조하고 싶은 경우
num_classes:${data.num_classes}
 
profile
달려가는중

0개의 댓글