document
지인의 추천으로 알게 된 Hydra. argparse 대신 사용하기 좋다 하니 사용해보도록 하자.
series
1. hydra basic
config groups는 여러 개의 config file을 이용해 인자를 관리하는 것이다.
복잡한 코드를 돌리거나, machine learning, deep learning 에서 인자를 관리할 때, 버전을 관리할 때 사용하면 좋을 것이라 생각한다.
한 파일에서 하나의 버전만 관리하니 가독성이 더 좋아지지 않을까?
우선, 현재 디렉토리 구조는 아래와 같다.
.
├── 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 ] argparse 대신에 Hydra를 사용해보자 - 1 ( basic ) (1) | 2022.02.16 |
---|
댓글 영역