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