파이썬에서 설정(config) 파일을 관리하는 방법은 다양하다. 기존에는 간단하게 .env 파일에 설정 내용을 기록하는 경우가 많았는데, 하이드라(Hydra) 라이브러리를 사용하면 설정(config)을 쉽게 변경할 수 있다. 하이드라(Hydra)는 복잡한 딥러닝 실험을 효율적으로 수행할 수 있도록 도와주는, 페이스북에서 만든 오픈소스 프레임워크(framework)다.
※ 설치 방법 ※
다음의 명령어를 사용하여 간단히 설치할 수 있다. 또한 Hydra의 color logger 기능도 함께 설치하는 것이 일반적이다.
pip install hydra-core
pip install hydra-colorlogger
※ 간단히 설정을 변경하여 사용하기 ※
예를 들어 딥러닝 모델을 학습할 때 epochs 하이퍼 파라미터만 변경하고자 한다면, 서로 다른 2개의 config 파일을 가지고 있지 않아도 된다. 다음과 같이 기본적으로 epochs이 10이라고 하자.
app:
optimizer: adam
epochs: 10
이때 다음과 같이 프로그램을 실행하여 epochs 파라미터의 값을 변경할 수 있다.
python run.py app.epochs=20
이 경우 실질적으로 다음과 같이 파라미터가 적용된다.
app:
optimizer: adam
epochs: 20
※ 계층적인 구조 ※
하이드라(Hydra)를 사용하면 yaml 파일을 계층적으로 관리할 수 있다. 예를 들어 yaml 파일 안에서 다른 yaml 파일의 내용을 가져올 수 있다. (config.yaml 파일이 메인이라고 하면, 다른 yaml 파일이 config.yaml 파일의 내용으로 사용될 수 있는 방식이다.)