메인 콘텐츠로 건너뛰기
훈련 과정에서 시간에 따라 변하는 값들 외에도, 모델이나 전처리 단계를 요약하는 단일 값을 추적하는 것이 중요한 경우가 많습니다. 이 정보를 W&B 실행의 summary 딕셔너리에 기록합니다. 실행의 summary 딕셔너리는 numpy 배열, PyTorch 텐서 또는 TensorFlow 텐서를 처리할 수 있습니다. 값이 이러한 타입 중 하나인 경우 텐서 전체를 이진 파일로 저장하고, 최소값, 평균, 분산, 분위수 등과 같은 요약 지표를 summary 객체에 저장합니다. wandb.Run.log()로 마지막에 기록된 값은 자동으로 W&B 실행의 summary 딕셔너리에 설정됩니다. summary 지표 딕셔너리를 수정하면 이전에 기록된 값은 사라집니다. 다음 코드 스니펫은 W&B에 사용자 지정 요약 지표를 제공하는 방법을 보여줍니다:
import wandb
import argparse

with wandb.init(config=args) as run:
  best_accuracy = 0
  for epoch in range(1, args.epochs + 1):
      test_loss, test_accuracy = test()
      if test_accuracy > best_accuracy:
          run.summary["best_accuracy"] = test_accuracy
          best_accuracy = test_accuracy
학습이 완료된 후에도 이미 생성된 W&B 실행의 summary 속성을 업데이트할 수 있습니다. W&B Public API를 사용하여 summary 속성을 업데이트하십시오.
api = wandb.Api()
run = api.run("username/project/run_id")
run.summary["tensor"] = np.random.random(1000)
run.summary.update()

요약 메트릭 사용자 정의

사용자 정의 요약 메트릭은 run.summary에서 학습 중 최적 step에서의 모델 성능을 기록하는 데 유용합니다. 예를 들어, 최종 값 대신 정확도의 최댓값이나 손실 값의 최솟값을 기록하고 싶을 수 있습니다. 기본적으로 요약에는 기록(history)의 최종 값이 사용됩니다. 요약 메트릭을 사용자 정의하려면 define_metricsummary 인자를 전달하십시오. 이 인자는 다음 값들을 받을 수 있습니다:
  • "min"
  • "max"
  • "mean"
  • "best"
  • "last"
  • "none"
"best"는 선택 인자인 objective"minimize" 또는 "maximize"로 설정했을 때에만 사용할 수 있습니다. 다음 예시는 손실과 정확도의 최소값과 최대값을 요약에 추가합니다:
import wandb
import random

random.seed(1)

with wandb.init() as run:
    # 손실의 최솟값 및 최댓값 요약
    run.define_metric("loss", summary="min")
    run.define_metric("loss", summary="max")

    # 정확도의 최솟값 및 최댓값 요약
    run.define_metric("acc", summary="min")
    run.define_metric("acc", summary="max")

    for i in range(10):
        log_dict = {
            "loss": random.uniform(0, 1 / (i + 1)),
            "acc": random.uniform(1 / (i + 1), 1),
        }
        run.log(log_dict)

요약 메트릭 보기

각 실행의 Overview 페이지나 프로젝트의 실행 테이블에서 요약 값을 확인할 수 있습니다.
  1. W&B App으로 이동합니다.
  2. Workspace 탭을 선택합니다.
  3. 실행 목록에서 요약 값을 기록한 실행의 이름을 클릭합니다.
  4. Overview 탭을 선택합니다.
  5. Summary 섹션에서 요약 값을 확인합니다.
실행 개요