<aside> 📢 <Table of Contents> 설정 관리 개요

Total task 컴포넌트

Data module 컴포넌트

Task 컴포넌트

Loss function 컴포넌트

Optimizer 컴포넌트

Model 컴포넌트

정리

</aside>

이번 포스팅에서는, Hydra 프레임워크를 이용하여 설정 파일을 어떻게 체계적으로 구성할 수 있는 지 확인하는 시간을 가져보도록 할게요😊

Hydra를 사용하게 된 이유 및 프로젝트 개요는 지난 포스팅을 확인해주세요!

프로젝트의 전체 코드는 아래 링크에서 확인하시면 됩니다 :)

https://github.com/jihoahn9303/hydra-project

설정 관리 개요

구체적인 내용에 앞서, 지난 시간에 설명했던 프로젝트 구조를 떠올려봅시다.

. ├── config_schemas (Using Hydra Structured configs) │ ├── config_schema.py │ ├── data_module_schema.py │ ├── task │ │ ├── loss_function_schema.py │ │ ├── model │ │ │ ├── adapter_schema.py │ │ │ ├── backbone_schema.py │ │ │ └── head_schema.py │ │ ├── model_schema.py │ │ └── optimizer_schema.py │ ├── task_schema.py │ └── trainer_schema.py ├── configs │ ├── config.yaml │ ├── data_module │ ├── task │ │ ├── loss_function │ │ ├── model │ │ │ ├── adapter │ │ │ ├── head │ │ └── optimizer │ └── trainer └── train.py

설정 관리는 크게 스키마(schema_schemas 폴더) 구성과 세부 구현(configs 폴더)로 구성하였습니다.

다음 그림은 지난 포스팅에서 사용하였던 컴포넌트 구조도입니다.

분명한 이해를 위하여 다시 동일한 구조도를 가져왔으며, 화살표를 받는 컴포넌트는 다른 컴포넌트에 포함됨을 의미합니다.