WandB

https://kr.wandb.ai/

Weight & Biases(wandb)는 머신러닝/딥러닝 실험을 추적하고 시각화하는 도구

✔️ 회원가입

https://wandb.ai/signup

  • Email, Full Name, Company or Institution, Professional/Academic을 입력하고 가입
  • 회원가입을 하면 API key가 발급 됨
  • Your API key for logging in to the wandb library: API_KEY
  • API_KEY를 복사해 둘 것

설치

pip install wandb

✔️ 로그인

import wandb
# wandb.login()  # 브라우저에서 로그인 페이지가 열립니다
wandb.login(key="API_KEY")  # API_KEY를 입력하면 로그인이 자동으로 됩니다

기본 사용법

wandb.init(
    project="my-first-project",    # 프로젝트 이름
    name="experiment-1",           # 실험 이름
    config={                       # 하이퍼파라미터 설정
        "learning_rate": 0.001,
        "epochs": 100,
        "batch_size": 32
    }
)

✔️ 학습 과정 로깅

for epoch in range(100):
    # 학습 코드...
    
    # 메트릭 로깅
    wandb.log({
        "loss": training_loss,
        "accuracy": training_accuracy,
        "val_loss": validation_loss,
        "val_accuracy": validation_accuracy
    })

웹 대시보드 확인하기

  1. wandb.ai 웹사이트 접속
  2. 해당 프로젝트로 이동
  3. Overview 탭에서 기본 메트릭 그래프 확인

실전 예제: PyTorch와 함께 사용하기

import torch
import wandb

wandb.login(key="API_KEY")

# 1. wandb 초기화
wandb.init(project="mnist-example")

# ...

# 2. 모델 학습 루프
for epoch in range(num_epochs):
    model.train()
    for batch_idx, (data, target) in enumerate(train_loader):
        optimizer.zero_grad()
        output = model(data)
        loss = criterion(output, target)
        loss.backward()
        optimizer.step()
        
        # 3. 학습 중간 결과 로깅
        wandb.log({
            "batch_loss": loss.item(),
            "epoch": epoch,
            "batch": batch_idx
        })
    
    # 4. 에폭 단위 평가 결과 로깅
    val_loss, val_acc = evaluate(model, val_loader)
    wandb.log({
        "epoch": epoch,
        "val_loss": val_loss,
        "val_accuracy": val_acc
    })

# 5. 실험 종료
wandb.finish()

해시태그: #WandB #logging #웹 대시보드 #PyTorch 예시