상세 컨텐츠

본문 제목

[ Python ] argparse 대신에 Hydra를 사용해보자 - 2 ( config groups )

Python

by teang1995 2022. 2. 20. 20:20

본문

반응형

 

document
지인의 추천으로 알게 된 Hydra. argparse 대신 사용하기 좋다 하니 사용해보도록 하자.

series
1. hydra basic


1. config groups?

config groups는 여러 개의 config file을 이용해 인자를 관리하는 것이다.

복잡한 코드를 돌리거나, machine learning, deep learning 에서 인자를 관리할 때, 버전을 관리할 때 사용하면 좋을 것이라 생각한다.

한 파일에서 하나의 버전만 관리하니 가독성이 더 좋아지지 않을까?

2. How to use config groups?

우선, 현재 디렉토리 구조는 아래와 같다.

.
├── conf
│   └── config.yaml
├── main.py
└── outputs

여기서 config.yaml을 아래와 같이 입력해보자.

# this is content for config.yaml
teang1995:
    name: ytlim
    age: 28
    height: secret
    weight: secret

allen1995:
    name: smlee
    age: 28
    height: unknown
    weight: unknown

main.py는 아래와 같이 입력해보자.

import hydra
from omegaconf import DictConfig, OmegaConf


@hydra.main(config_path="conf", config_name="config")
def my_app(cfg: DictConfig) -> None:
    ids = ['teang1995', 'allen1995']
    for id_ in ids:
        profile = cfg[id_]
        name = profile['name']
        age = profile['age']
        height = profile['height']
        weight = profile['weight']

        print(name, age, height, weight)


if __name__ == "__main__":
    my_app()

이를 실행해보면 아래와 같은 결과를 얻을 수 있다.

ytlim 28 188 secret
smlee 28 unknown unknown

 

이번엔 다양한 config를 입력받을 수 있는 config group 기능을 사용해보았다.  

다음 포스팅에서는 여러 인자에 대해 하나의 파이썬 파일을 실행할 수 있는 multi-run기능에 대해 알아보도록 하겠다.

 

'Python' 카테고리의 다른 글

[ Python ] argparse 대신에 Hydra를 사용해보자 - 1 ( basic )  (1) 2022.02.16

관련글 더보기

댓글 영역