Skip to main content

Documentation Index

Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

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'
        },
    ),
]