Hydra는 연구 및 기타 복잡한 애플리케이션 개발을 간소화하는 오픈 소스 Python 프레임워크입니다. 핵심 기능은 조합을 통해 계층적 설정을 동적으로 생성하고, 설정 파일과 명령줄로 이를 재정의할 수 있다는 점입니다.Hydra를 계속 설정 관리에 사용하면서도 W&B의 강력한 기능을 활용할 수 있습니다.
메트릭 추적
wandb.init()와 wandb.Run.log()를 사용해 메트릭을 추적합니다. 여기서 wandb.entity와 wandb.project는 hydra 설정 파일에서 정의합니다.
하이퍼파라미터 추적
OmegaConf의 딕셔너리는 기본 dict의 하위 클래스가 아니므로 Hydra의 Config를 wandb.Run.config에 직접 전달하면 대시보드에서 예상치 못한 결과가 발생합니다. wandb.Run.config에 전달하기 전에 omegaconf.DictConfig를 기본 dict 유형으로 변환해야 합니다.
멀티프로세싱 문제 해결
wandb.init()에 설정 매개변수를 추가해 wandb의 멀티프로세싱 프로토콜을 변경해 보세요.
하이퍼파라미터 최적화
sweep.yaml 파일 예시는 다음과 같습니다:
wandb agent 명령어를 반환합니다.
Hydra 기본값에 없는 매개변수 전달하기
+를 붙입니다. 예를 들어, 다음과 같이 호출하면 값을 지정한 추가 매개변수를 간단히 전달할 수 있습니다:
+ 설정에 대해 sweep을 수행할 수는 없습니다. 이를 우회하려면 experiment 파라미터를 기본 빈 파일로 초기화한 다음, 각 호출 시 W&B Sweep을 사용해 해당 빈 설정을 덮어쓰면 됩니다. 자세한 내용은 이 W&B 리포트를 참조하세요.