Skip to main content
OpenMMLab의 MMEngine은 PyTorch 기반 딥러닝 모델을 트레이닝하기 위한 핵심 라이브러리입니다. MMEngine은 OpenMMLab 알고리즘 라이브러리를 위한 차세대 트레이닝 아키텍처를 구현하며, OpenMMLab 내 30개가 넘는 알고리즘 라이브러리에 공통 실행 기반을 제공합니다. 핵심 컴포넌트로는 트레이닝 엔진, 평가 엔진, 모듈 관리가 있습니다. W&B는 전용 WandbVisBackend를 통해 MMEngine에 직접 통합되어 있으며, 이를 사용해 다음 작업을 수행할 수 있습니다.
  • 트레이닝 및 평가 메트릭을 로깅합니다.
  • 실험 설정을 로깅하고 관리합니다.
  • 그래프, 이미지, 스칼라 등 추가 기록을 로깅합니다.

시작하기

openmimwandb를 설치합니다.
pip install -q -U openmim wandb
다음으로 mim을 사용해 mmenginemmcv를 설치합니다.
mim install -q mmengine mmcv

MMEngine Runner와 함께 WandbVisBackend 사용하기

이 섹션에서는 mmengine.runner.Runner와 함께 WandbVisBackend를 사용하는 일반적인 워크플로를 설명합니다.
  1. 시각화 설정으로 visualizer를 정의합니다.
    from mmengine.visualization import Visualizer
    
    # 시각화 설정 정의
    visualization_cfg = dict(
        name="wandb_visualizer",
        vis_backends=[
            dict(
                type='WandbVisBackend',
                init_kwargs=dict(project="mmengine"),
            )
        ],
        save_dir="runs/wandb"
    )
    
    # 시각화 설정에서 visualizer 가져오기
    visualizer = Visualizer.get_instance(**visualization_cfg)
    
    init_kwargs에는 W&B run 초기화의 입력 매개변수에 해당하는 인수 딕셔너리를 전달합니다.
  2. visualizerrunner를 초기화한 다음 runner.train()을 호출합니다.
    from mmengine.runner import Runner
    
    # PyTorch용 트레이닝 헬퍼인 mmengine Runner 빌드
    runner = Runner(
        model,
        work_dir='runs/gan/',
        train_dataloader=train_dataloader,
        train_cfg=train_cfg,
        optim_wrapper=opt_wrapper_dict,
        visualizer=visualizer, # visualizer 전달
    )
    
    # 트레이닝 시작
    runner.train()
    

OpenMMLab 컴퓨터 비전 라이브러리와 함께 WandbVisBackend 사용

WandbVisBackendMMDetection과 같은 OpenMMLab 컴퓨터 비전 라이브러리에서 실험 추적용으로도 쉽게 사용할 수 있습니다.
# 기본 런타임 설정에서 기본 설정을 상속합니다
_base_ = ["../_base_/default_runtime.py"]

# 기본 설정의 `visualizer`에 있는 `vis_backends`에
# `WandbVisBackend` 설정 딕셔너리를 할당합니다
_base_.visualizer.vis_backends = [
    dict(
        type='WandbVisBackend',
        init_kwargs={
            'project': 'mmdet',
            'entity': 'geekyrakshit'
        },
    ),
]