메인 콘텐츠로 건너뛰기
GitHub 소스

class Run

W&B에 의해 로깅되는 하나의 계산 단위입니다. 일반적으로 하나의 ML 실험을 의미합니다. 새 run을 생성하려면 wandb.init()을 호출합니다. wandb.init()은 새 run을 시작하고 wandb.Run 객체를 반환합니다. 각 run은 고유한 ID(run ID)에 연결됩니다. W&B에서는 컨텍스트 매니저(with 문)를 사용해 run을 자동으로 종료할 것을 권장합니다. 분산 트레이닝 실험의 경우, 프로세스당 하나의 run을 사용해 각 프로세스를 개별적으로 추적하거나, 모든 프로세스를 단일 run으로 함께 추적할 수 있습니다. 자세한 내용은 분산 트레이닝 실험 로깅을 참조하세요. wandb.Run.log()를 사용하여 run에 데이터를 기록할 수 있습니다. wandb.Run.log()를 사용해 로깅한 모든 항목은 해당 run으로 전송됩니다. 자세한 내용은 실험 생성 또는 wandb.init API 레퍼런스 페이지를 참조하세요. wandb.apis.public 네임스페이스에는 또 다른 Run 객체가 있습니다. 이 객체는 이미 생성된 run과 상호작용할 때 사용합니다. Attributes:
  • summary: (요약) run에 대한 요약으로, 사전과 유사한 객체입니다. 자세한 내용은 요약 메트릭 로깅을 참조하세요.
  • history: (히스토리) run 중에 기록된 시계열(예: 에포크별 메트릭) 데이터를 포함하는 객체입니다. 자세한 내용은 히스토리 로깅을 참조하세요.
Examples: wandb.init()으로 run을 생성합니다:
import wandb

# 새 run을 시작하고 데이터를 로깅합니다
# 컨텍스트 매니저(`with` 문)를 사용하여 run을 자동으로 종료합니다
with wandb.init(entity="entity", project="project") as run:
    run.log({"accuracy": acc, "loss": loss})

property Run.config

이 run과 관련된 config 객체입니다. 반환값:
  • wandb_config.Config: config 프로퍼티 값입니다.

property Run.config_static

이 run과 연결된 정적 config 객체입니다. 반환값:
  • wandb_config.ConfigStatic: config_static 프로퍼티 값입니다.

property Run.dir

해당 run과 연관된 파일이 저장되는 디렉터리입니다. Returns:
  • str: dir 속성 값.

property Run.disabled

run이 비활성화된 경우 True, 그렇지 않으면 False입니다. 반환값:
  • bool: disabled 속성 값.

property Run.entity

run과 연결된 W&B entity의 이름입니다. entity는 사용자 이름, 팀 이름 또는 조직 이름일 수 있습니다. Returns:
  • str: entity 프로퍼티 값입니다.

property Run.group

이 run과 연결된 그룹 이름을 반환합니다. run들을 함께 그룹화하면 관련된 실험을 W&B UI에서 한데 모아 체계적으로 구성하고 시각화할 수 있습니다. 이는 특히 분산 트레이닝이나 교차 검증처럼 여러 run을 하나의 통합된 실험으로 보고 관리해야 하는 시나리오에서 유용합니다. 모든 프로세스가 동일한 run 객체를 공유하는 shared 모드에서는 run이 하나뿐이므로, 일반적으로 group을 설정할 필요가 없습니다. 반환값:
  • str: group 속성 값.

property Run.id

이 run의 식별자입니다. 반환값:
  • str: id 속성 값입니다.

property Run.job_type

run과 연결된 job 타입의 이름입니다. run의 job 타입은 W&B App에서 해당 run의 Overview 페이지에서 확인할 수 있습니다. 이 속성을 사용하면 “training”, “evaluation”, “inference”와 같이 job 타입별로 run을 분류할 수 있습니다. 이는 동일한 프로젝트 안에 서로 다른 job 타입의 여러 run이 있을 때, W&B UI에서 run을 구성하고 필터링하는 데 특히 유용합니다. 자세한 내용은 Organize runs를 참고하세요. 반환값:
  • str: job_type 속성 값입니다.

property Run.name

run의 표시 이름입니다. 표시 이름은 고유함이 보장되지 않으며, 설명적인 텍스트일 수 있습니다. 기본적으로 무작위로 생성됩니다. 반환값:
  • str | None: name 프로퍼티의 값.

property Run.notes

해당 run과 연관된 노트(있는 경우)입니다. 노트는 여러 줄 문자열일 수 있으며, $$ 안에 마크다운과 LaTeX 수식을 사용할 수도 있습니다. 예: $x + 3$. 반환값:
  • str | None: notes 프로퍼티 값입니다.

property Run.offline

run이 오프라인 상태이면 True, 그렇지 않으면 False입니다. 반환값:
  • bool: offline 속성 값.

property Run.path

해당 run의 경로입니다. run 경로에는 entity, 프로젝트, run ID가 포함되며, 형식은 entity/project/run_id입니다. 반환값:
  • str: path 프로퍼티의 값.

property Run.project

run과 연결된 W&B 프로젝트의 이름입니다. 반환값:
  • str: project 속성의 값입니다.

property Run.project_url

해당 run과 연결된 W&B 프로젝트의 URL입니다(있는 경우). 오프라인 run에는 프로젝트 URL이 없습니다. Returns:
  • str | None: project_url 프로퍼티의 값.

property Run.resumed

run이 재개된 경우 True이고, 그렇지 않은 경우 False입니다. Returns:
  • bool: resumed 속성의 값입니다.

property Run.settings

run의 Settings 객체에 대한 변경 불가능한 사본입니다. 반환값:
  • Settings: settings 프로퍼티 값입니다.

property Run.start_time

run이 시작된 시각의 Unix 타임스탬프(초 단위)입니다. 반환:
  • float: start_time 속성 값.

property Run.sweep_id

해당 run에 연결된 스윕의 식별자입니다(있는 경우). 반환값:
  • str | None: sweep_id 속성 값.

property Run.sweep_url

해당 run과 연결된 스윕의 URL입니다(있는 경우에만). 오프라인 run에는 스윕 URL이 없습니다. Returns:
  • str | None: sweep_url 프로퍼티의 값.

property Run.tags

해당 run과 연결된 태그입니다(있는 경우에 한함). 반환값:
  • tuple | None: tags 속성 값.

property Run.url

존재하는 경우, 해당 W&B run의 URL입니다. 오프라인 run에는 URL이 없습니다. Returns:
  • str | None: URL 속성 값입니다.

메서드 Run.alert

alert(
    title: 'str',
    text: 'str',
    level: 'str | AlertLevel | None' = None,
    wait_duration: 'int | float | timedelta | None' = None
) → None
주어진 제목과 텍스트로 알림을 생성합니다. 인수:
  • title: 알림 제목입니다. 64자 미만이어야 합니다.
  • text: 알림의 본문 텍스트입니다.
  • level: 사용할 알림 수준입니다. INFO, WARN, ERROR 중 하나입니다.
  • wait_duration: 이 제목으로 된 다른 알림을 다시 보내기 전까지 대기할 시간(초)입니다.

메서드 Run.define_metric

define_metric(
    name: 'str',
    step_metric: 'str | wandb_metric.Metric | None' = None,
    step_sync: 'bool | None' = None,
    hidden: 'bool | None' = None,
    summary: 'str | None' = None,
    goal: 'str | None' = None,
    overwrite: 'bool | None' = None
) → wandb_metric.Metric
wandb.Run.log()으로 로깅되는 메트릭을 사용자 정의합니다. Args:
  • name: 사용자 정의할 메트릭의 이름.
  • step_metric: 자동으로 생성되는 차트에서 이 메트릭의 X축으로 사용할 다른 메트릭의 이름.
  • step_sync: 명시적으로 제공되지 않은 경우 step_metric의 마지막 값을 wandb.Run.log() 호출에 자동으로 삽입합니다. step_metric이 지정되면 기본값은 True입니다.
  • hidden: 이 메트릭을 자동 플롯에서 숨깁니다.
  • summary: summary에 추가할 집계 메트릭을 지정합니다. 지원되는 집계는 “min”, “max”, “mean”, “last”, “first”, “best”, “copy”, “none” 입니다. “none”은 summary가 생성되지 않도록 합니다. “best”는 goal 파라미터와 함께 사용되며, “best”는 사용 중단(deprecated)되었으므로 사용하지 말고 대신 “min” 또는 “max”를 사용해야 합니다. “copy” 역시 사용 중단(deprecated)되었으므로 사용하지 말아야 합니다.
  • goal: “best” summary 타입을 어떻게 해석할지 지정합니다. 지원되는 옵션은 “minimize”와 “maximize”입니다. “goal”은 사용 중단(deprecated)되었으므로 사용하지 말고 대신 “min” 또는 “max”를 사용해야 합니다.
  • overwrite: false이면 동일한 메트릭에 대해 이전에 호출된 define_metric과 이 호출이 병합되며, 지정되지 않은 파라미터에 대해서는 이전 호출의 값이 사용됩니다. true이면 지정되지 않은 파라미터가 이전 호출에서 지정된 값을 덮어씁니다.
Returns: 이 호출을 표현하지만, 그 외에는 바로 폐기해도 되는 객체입니다.

메서드 Run.display

display(height: 'int' = 420, hidden: 'bool' = False) → bool
Jupyter에서 이 run을 표시합니다.

method Run.finish

finish(exit_code: 'int | None' = None, quiet: 'bool | None' = None) → None
run을 종료하고 남아 있는 데이터를 업로드합니다. W&B run의 완료를 표시하고 모든 데이터가 서버와 동기화되었는지 확인합니다. run의 최종 상태는 종료 조건과 동기화 상태에 따라 결정됩니다. run 상태:
  • Running: 데이터를 로깅하거나 하트비트를 전송 중인 활성 run.
  • Crashed: 하트비트 전송이 예기치 않게 중단된 run.
  • Finished: 모든 데이터가 동기화된 상태에서 (exit_code=0) 정상적으로 완료된 run.
  • Failed: 오류와 함께 완료된 run (exit_code!=0).
  • Killed: 완료되기 전에 강제로 중지된 run.
Args:
  • exit_code: run의 종료 상태를 나타내는 정수. 성공 시 0을 사용하고, 그 외의 값은 run이 실패했음을 의미합니다.
  • quiet: 더 이상 사용되지 않습니다. wandb.Settings(quiet=...)를 사용해 로깅 상세 수준을 설정하세요.

메서드 Run.finish_artifact

finish_artifact(
    artifact_or_path: 'Artifact | str',
    name: 'str | None' = None,
    type: 'str | None' = None,
    aliases: 'list[str] | None' = None,
    distributed_id: 'str | None' = None
) → Artifact
run의 출력 아티팩트로 아직 finalize되지 않은 아티팩트를 완료합니다. 동일한 distributed ID로 이후에 수행되는 “upsert”는 새 버전을 생성합니다. Args:
  • artifact_or_path: 이 아티팩트의 내용에 대한 경로로, 다음 형식 중 하나일 수 있습니다:
    • /local/directory
    • /local/directory/file.txt
    • s3://bucket/path 또는 wandb.Artifact를 호출해 생성한 Artifact 객체를 전달할 수도 있습니다.
  • name: 아티팩트 이름입니다. entity/project를 접두사로 포함할 수 있습니다. 유효한 이름 형식은 다음과 같습니다:
    • name:version
    • name:alias
    • digest 지정하지 않으면, 경로의 basename 앞에 현재 run ID를 붙인 값이 기본값으로 사용됩니다.
  • type: 로깅할 아티팩트의 유형입니다. 예: dataset, model
  • aliases: 이 아티팩트에 적용할 별칭(alias) 목록입니다. 기본값은 ["latest"]입니다.
  • distributed_id: 모든 분산 작업이 공유하는 고유한 문자열입니다. None인 경우, 기본값은 run의 그룹 이름입니다.
Returns: Artifact 객체를 반환합니다.
link_artifact(
    artifact: 'Artifact',
    target_path: 'str',
    aliases: 'list[str] | None' = None
) → Artifact
아티팩트를 컬렉션에 링크합니다. 여기서 “link”라는 용어는 W&B가 아티팩트를 저장하는 위치와 레지스트리에서 아티팩트에 액세스할 수 있는 위치를 연결하는 포인터를 의미합니다. 아티팩트를 컬렉션에 링크하더라도 W&B는 아티팩트를 중복 저장하지 않습니다. 지정한 컬렉션에 대해 Registry UI에서 링크된 아티팩트를 확인할 수 있습니다. Args:
  • artifact: 컬렉션에 링크할 아티팩트 객체입니다.
  • target_path: 컬렉션의 경로입니다. 경로는 접두사 “wandb-registry-”와 레지스트리 이름, 컬렉션 이름으로 구성되며, 형식은 wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}입니다.
  • aliases: 링크된 아티팩트에 하나 이상의 별칭을 추가합니다. 가장 최근에 링크한 아티팩트에는 “latest” 별칭이 자동으로 적용됩니다.
Returns: 링크된 아티팩트를 반환합니다.
link_model(
    path: 'StrPath',
    registered_model_name: 'str',
    name: 'str | None' = None,
    aliases: 'list[str] | None' = None
) → Artifact | None
모델 아티팩트 버전을 로깅하고 model registry에 있는 registered model에 연결합니다. 연결된 모델 버전은 지정된 registered model의 UI에서 확인할 수 있습니다. 이 메서드는 다음을 수행합니다:
  • ‘name’ 모델 아티팩트가 이미 로깅되었는지 확인합니다. 이미 로깅된 경우, ‘path’에 있는 파일과 일치하는 아티팩트 버전을 사용하거나 새 버전을 로깅합니다. 아직 없으면 ‘path’ 아래의 파일을 타입이 ‘model’인 새 모델 아티팩트 ‘name’으로 로깅합니다.
  • ‘model-registry’ 프로젝트에 이름이 ‘registered_model_name’인 registered model이 존재하는지 확인합니다. 존재하지 않으면 이름이 ‘registered_model_name’인 새 registered model을 생성합니다.
  • 모델 아티팩트 ‘name’의 버전을 registered model ‘registered_model_name’에 연결합니다.
  • ‘aliases’ 리스트에 있는 별칭을 새로 연결된 모델 아티팩트 버전에 추가합니다.
Args:
  • path: (str) 이 모델의 내용을 가리키는 경로로, 다음 형식 중 하나일 수 있습니다:
    • /local/directory
    • /local/directory/file.txt
    • s3://bucket/path
  • registered_model_name: 모델이 연결될 registered model의 이름입니다. registered model은 model registry에 연결된 모델 버전들의 집합으로, 일반적으로 팀의 특정 ML 작업을 나타냅니다. 이 registered model이 속한 entity는 run에서 유추됩니다.
  • name: ‘path’에 있는 파일들이 로깅될 모델 아티팩트의 이름입니다. 지정하지 않으면, 경로의 basename 앞에 현재 run ID가 붙은 값이 기본값으로 사용됩니다.
  • aliases: registered model 내부에서 이 연결된 아티팩트에만 적용될 별칭들입니다. 별칭 “latest”는 항상 registered model에 링크된 해당 아티팩트의 최신 버전에 적용됩니다.
Raises:
  • AssertionError: registered_model_name이 경로이거나, 모델 아티팩트 ‘name’의 타입에 ‘model’이라는 부분 문자열이 포함되지 않은 경우 발생합니다.
  • ValueError: name에 잘못된 특수 문자가 포함된 경우 발생합니다.
Returns: 링크가 성공하면 연결된 아티팩트를, 그렇지 않으면 None을 반환합니다.

메서드 Run.log

log(
    data: 'dict[str, Any]',
    step: 'int | None' = None,
    commit: 'bool | None' = None
) → None
run 데이터를 업로드합니다. 스칼라, 이미지, 비디오, 히스토그램, 플롯, 테이블 등의 run 데이터를 기록하려면 log를 사용하세요. 코드 스니펫과 모범 사례 등은 Log objects and media를 참고하세요. 기본 사용법:
import wandb

with wandb.init() as run:
     run.log({"train-loss": 0.5, "accuracy": 0.9})
이전 코드 스니펫은 손실과 정확도 값을 run의 히스토리에 저장하고, 이 메트릭들의 요약값을 업데이트합니다. 로그된 데이터를 wandb.ai의 Workspace에서 시각화하거나, W&B 앱의 self-hosted 인스턴스에서 로컬로 시각화하거나, 데이터를 내보낸 뒤 Jupyter 노트북 등에서 Public API를 사용해 로컬에서 시각화하고 탐색할 수 있습니다. 로그되는 값은 반드시 스칼라일 필요는 없습니다. 이미지, 오디오, 비디오 등과 같이 W&B에서 지원하는 Data Type이라면 어떤 것이든 기록할 수 있습니다. 예를 들어, wandb.Table을 사용해 구조화된 데이터를 로그할 수 있습니다. 더 자세한 내용은 테이블 로그, 데이터 시각화 및 쿼리 튜토리얼을 참조하세요. W&B는 이름에 슬래시(/)가 포함된 메트릭을, 마지막 슬래시 앞의 텍스트를 사용해 이름이 지정된 섹션으로 구성합니다. 예를 들어, 다음과 같은 경우 “train”과 “validate”라는 두 개의 섹션이 생성됩니다:
with wandb.init() as run:
     # "train" 섹션에 메트릭을 기록합니다.
     run.log(
         {
             "train/accuracy": 0.9,
             "train/loss": 30,
             "validate/accuracy": 0.8,
             "validate/loss": 20,
         }
     )
중첩은 한 수준만 지원됩니다. run.log({"a/b/c": 1})는 이름이 “a”인 섹션을 생성합니다. run.log()는 초당 몇 번 정도만 호출하도록 설계되었습니다. 최적의 성능을 위해 로깅을 N번 반복마다 한 번으로 제한하거나, 여러 반복에서 데이터를 수집한 뒤 한 번에 로깅하세요. 기본적으로 log를 호출할 때마다 새로운 “step”이 생성됩니다. step 값은 항상 증가해야 하며, 이전 step에 로깅하는 것은 불가능합니다. 차트에서 X축으로는 어떤 메트릭이든 사용할 수 있습니다. 자세한 내용은 Custom log axes를 참고하세요. 대부분의 경우에는 W&B step을 트레이닝 step이 아니라 타임스탬프처럼 다루는 것이 더 좋습니다.
with wandb.init() as run:
     # 예시: X축으로 사용할 "epoch" 메트릭을 기록합니다.
     run.log({"epoch": 40, "train-loss": 0.5})
stepcommit 파라미터를 사용하면 여러 번의 wandb.Run.log() 호출을 통해 동일한 step에 로그를 기록할 수 있습니다. 다음 예시는 모두 동등합니다:
with wandb.init() as run:
     # 일반 사용법:
     run.log({"train-loss": 0.5, "accuracy": 0.8})
     run.log({"train-loss": 0.4, "accuracy": 0.9})

     # 자동 증가 없는 암묵적 step:
     run.log({"train-loss": 0.5}, commit=False)
     run.log({"accuracy": 0.8})
     run.log({"train-loss": 0.4}, commit=False)
     run.log({"accuracy": 0.9})

     # 명시적 step:
     run.log({"train-loss": 0.5}, step=current_step)
     run.log({"accuracy": 0.8}, step=current_step)
     current_step += 1
     run.log({"train-loss": 0.4}, step=current_step)
     run.log({"accuracy": 0.9}, step=current_step, commit=True)
매개변수:
  • data: str 키와 직렬화 가능한 값을 갖는 dict
  • Python objects including: int, float, string; 모든 wandb.data_types; 직렬화 가능한 Python 객체로 이루어진 리스트, 튜플, NumPy 배열; 이와 같은 구조를 가진 다른 dict.
  • step: 로깅할 스텝 번호. None이면 암시적인 자동 증가 스텝이 사용됩니다. 자세한 내용은 설명 부분의 참고 사항을 확인하세요.
  • commit: True이면 스텝을 완료하고 업로드합니다. False이면 해당 스텝에 대한 데이터를 누적합니다. 자세한 내용은 설명 부분의 참고 사항을 확인하세요. stepNone이면 기본값은 commit=True이고, 그렇지 않으면 기본값은 commit=False입니다.
Examples: 더 많은 예제와 자세한 설명은 로깅 가이드를 참고하세요. 기본 사용법
import wandb

with wandb.init() as run:
    run.log({"train-loss": 0.5, "accuracy": 0.9
증분 로깅
import wandb

with wandb.init() as run:
    run.log({"loss": 0.2}, commit=False)
    # 이 단계를 리포트할 준비가 되었을 때 다른 곳에서:
    run.log({"accuracy": 0.8})
히스토그램
import numpy as np
import wandb

# 정규 분포에서 무작위로 그래디언트 샘플링
gradients = np.random.randn(100, 100)
with wandb.init() as run:
    run.log({"gradients": wandb.Histogram(gradients)})
NumPy 제공 이미지
import numpy as np
import wandb

with wandb.init() as run:
    examples = []
    for i in range(3):
         pixels = np.random.randint(low=0, high=256, size=(100, 100, 3))
         image = wandb.Image(pixels, caption=f"random field {i}")
         examples.append(image)
    run.log({"examples": examples})
PIL에서 생성된 이미지
import numpy as np
from PIL import Image as PILImage
import wandb

with wandb.init() as run:
    examples = []
    for i in range(3):
         pixels = np.random.randint(
             low=0,
             high=256,
             size=(100, 100, 3),
             dtype=np.uint8,
         )
         pil_image = PILImage.fromarray(pixels, mode="RGB")
         image = wandb.Image(pil_image, caption=f"random field {i}")
         examples.append(image)
    run.log({"examples": examples})
NumPy 비디오
import numpy as np
import wandb

with wandb.init() as run:
    # 축 순서: (시간, 채널, 높이, 너비)
    frames = np.random.randint(
         low=0,
         high=256,
         size=(10, 3, 100, 100),
         dtype=np.uint8,
    )
    run.log({"video": wandb.Video(frames, fps=4)})
Matplotlib 플롯
from matplotlib import pyplot as plt
import numpy as np
import wandb

with wandb.init() as run:
    fig, ax = plt.subplots()
    x = np.linspace(0, 10)
    y = x * x
    ax.plot(x, y)  # y = x^2 플롯
    run.log({"chart": fig})
정밀도-재현율(PR) 곡선
import wandb

with wandb.init() as run:
    run.log({"pr": wandb.plot.pr_curve(y_test, y_probas, labels)})
3D 객체
import wandb

with wandb.init() as run:
    run.log(
         {
             "generated_samples": [
                 wandb.Object3D(open("sample.obj")),
                 wandb.Object3D(open("sample.gltf")),
                 wandb.Object3D(open("sample.glb")),
             ]
         }
    )
발생하는 예외:
  • wandb.Error: wandb.init() 이전에 호출된 경우.
  • ValueError: 유효하지 않은 데이터가 전달된 경우.

메서드 Run.log_artifact

log_artifact(
    artifact_or_path: 'Artifact | StrPath',
    name: 'str | None' = None,
    type: 'str | None' = None,
    aliases: 'list[str] | None' = None,
    tags: 'list[str] | None' = None
) → Artifact
run의 출력 아티팩트를 선언합니다. Args:
  • artifact_or_path: (str 또는 Artifact) 이 아티팩트의 내용을 가리키는 경로로, 다음과 같은 형태일 수 있습니다:
    • /local/directory
    • /local/directory/file.txt
    • /local/directory/file.txt
    • s3://bucket/path 또는 wandb.Artifact를 호출해 생성한 Artifact 객체를 전달할 수도 있습니다.
  • name: (str, 선택 사항) 아티팩트 이름입니다. 유효한 이름 형식은 다음과 같습니다:
    • name:version
    • name:alias
    • digest 이름을 지정하지 않으면 경로의 기본 이름 앞에 현재 run id를 붙인 값이 기본값으로 사용됩니다.
  • type: (str) 로깅할 아티팩트의 타입입니다. 예를 들면 dataset, model 등이 있습니다.
  • aliases: (list, 선택 사항) 이 아티팩트에 적용할 별칭 목록입니다. 기본값은 ["latest"]입니다.
  • tags: (list, 선택 사항) 이 아티팩트에 적용할 태그 목록입니다(있는 경우).
Returns: Artifact 객체를 반환합니다.

method Run.log_code

log_code(
    root: 'str | None' = '.',
    name: 'str | None' = None,
    include_fn: 'Callable[[str, str], bool] | Callable[[str], bool]' = <function _is_py_requirements_or_dockerfile at 0x10ac95d00>,
    exclude_fn: 'Callable[[str, str], bool] | Callable[[str], bool]' = <function exclude_wandb_fn at 0x10c39b9c0>
) → Artifact | None
현재 코드의 상태를 W&B Artifact에 저장합니다. 기본적으로 현재 디렉터리를 재귀적으로 탐색하며 .py로 끝나는 모든 파일을 로깅합니다. Args:
  • root: 코드를 재귀적으로 찾을 상대 경로(os.getcwd() 기준) 또는 절대 경로입니다.
  • name: (str, optional) 코드 아티팩트의 이름입니다. 기본적으로 아티팩트 이름은 source-$PROJECT_ID-$ENTRYPOINT_RELPATH가 됩니다. 여러 run이 같은 아티팩트를 공유하도록 하고 싶은 경우가 있을 수 있습니다. name을 지정하면 이를 달성할 수 있습니다.
  • include_fn: 파일 경로와 (선택적으로) root 경로를 인자로 받아, 포함해야 하면 True, 그렇지 않으면 False를 반환하는 callable입니다. 이 함수는
  • defaults to lambda path, root: path.endswith(".py").
  • exclude_fn: 파일 경로와 (선택적으로) root 경로를 인자로 받아, 제외해야 하면 True, 그렇지 않으면 False를 반환하는 callable입니다. 기본값은 <root>/.wandb/<root>/wandb/ 디렉터리 안의 모든 파일을 제외하는 함수입니다.
Examples: 기본 사용법
import wandb

with wandb.init() as run:
    run.log_code()
고급 사용법
import wandb

with wandb.init() as run:
    run.log_code(
         root="../",
         include_fn=lambda path: path.endswith(".py") or path.endswith(".ipynb"),
         exclude_fn=lambda path, root: os.path.relpath(path, root).startswith(
             "cache/"
         ),
    )
반환값: 코드가 로깅된 경우 Artifact 객체를 반환합니다.

method Run.log_model

log_model(
    path: 'StrPath',
    name: 'str | None' = None,
    aliases: 'list[str] | None' = None
) → None
지정된 ‘path’ 경로 내의 내용을 포함하는 모델 아티팩트를 run에 로깅하고, 해당 아티팩트를 이 run의 출력으로 표시합니다. 모델 아티팩트 이름에는 영문자, 숫자, 밑줄(_), 하이픈(-)만 사용할 수 있습니다. Args:
  • path: (str) 이 모델 내용에 대한 경로로, 다음과 같은 형식을 사용할 수 있습니다:
    • /local/directory
    • /local/directory/file.txt
    • s3://bucket/path
  • name: 파일 내용이 추가될 모델 아티팩트에 지정할 이름입니다. 지정하지 않으면, path의 기본 이름 앞에 현재 run ID를 붙인 값이 기본값으로 사용됩니다.
  • aliases: 생성된 모델 아티팩트에 적용할 별칭으로, 기본값은 ["latest"]입니다.
Raises:
  • ValueError: name에 허용되지 않는 특수 문자가 포함된 경우.
Returns: None

method Run.mark_preempting

mark_preempting() → None
이 run을 선점 중인 상태로 표시합니다. 또한 내부 프로세스에 이 사실을 서버에 즉시 리포트하도록 지시합니다.

메서드 Run.restore

restore(
    name: 'str',
    run_path: 'str | None' = None,
    replace: 'bool' = False,
    root: 'str | None' = None
) → None | TextIO
클라우드 스토리지에서 지정된 파일을 다운로드합니다. 파일은 현재 디렉터리 또는 run 디렉터리에 저장됩니다. 기본적으로 파일이 아직 존재하지 않을 때만 다운로드합니다. 인자(Args):
  • name: 파일 이름.
  • run_path: 파일을 가져올 run에 대한 선택적 경로입니다. 예: username/project_name/run_id. wandb.init이 호출되지 않았다면 필수입니다.
  • replace: 파일이 이미 로컬에 존재하더라도 다운로드할지 여부입니다.
  • root: 파일을 다운로드할 디렉터리입니다. 기본값은 현재 디렉터리이거나, wandb.init이 호출된 경우 run 디렉터리입니다.
반환값(Returns): 파일을 찾을 수 없으면 None을 반환하고, 그렇지 않으면 읽기용으로 열린 파일 객체를 반환합니다. 예외(Raises):
  • CommError: W&B가 W&B 백엔드에 연결할 수 없는 경우.
  • ValueError: 파일을 찾을 수 없거나 run_path를 찾을 수 없는 경우.

메서드 Run.save

save(
    glob_str: 'str | os.PathLike',
    base_path: 'str | os.PathLike | None' = None,
    policy: 'PolicyName' = 'live'
) → bool | list[str]
하나 이상의 파일을 W&B에 동기화합니다. 상대 경로는 현재 작업 디렉터리를 기준으로 합니다. Unix 글롭(예: “myfiles/*“)은 policy와 관계없이 save가 호출되는 시점에 확장됩니다. 특히, 새로 생성된 파일은 자동으로 포함되지 않습니다. 업로드되는 파일의 디렉터리 구조를 제어하기 위해 base_path를 지정할 수 있습니다. 이는 glob_str의 접두어여야 하며, 그 아래의 디렉터리 구조는 그대로 유지됩니다. 절대 경로나 글롭이 주어지고 base_path가 없는 경우, 위 예시와 같이 한 단계의 디렉터리 수준이 유지됩니다. 파일은 자동으로 중복 제거됩니다. 변경 없이 동일한 파일에 대해 save()를 여러 번 호출해도 다시 업로드되지 않습니다. Args:
  • glob_str: 상대 또는 절대 경로, 혹은 Unix 글롭.
  • base_path: 디렉터리 구조를 유추하기 위해 사용할 경로입니다. 예시를 참조하세요.
  • policy: live, now, end 중 하나.
    • live: 파일이 변경될 때마다 업로드하며, 이전 버전을 덮어씁니다.
    • now: 지금 한 번 파일을 업로드합니다.
    • end: run이 종료될 때 파일을 업로드합니다.
Returns: 매칭된 파일에 대해 생성된 심볼릭 링크의 경로를 반환합니다. 과거와의 호환성 때문에, 레거시 코드에서는 boolean 값을 반환할 수도 있습니다.
import wandb

run = wandb.init()

run.save("these/are/myfiles/*")
# => run의 "these/are/myfiles/" 폴더에 파일을 저장합니다.

run.save("these/are/myfiles/*", base_path="these")
# => run의 "are/myfiles/" 폴더에 파일을 저장합니다.

run.save("/Users/username/Documents/run123/*.txt")
# => run의 "run123/" 폴더에 파일을 저장합니다. 아래 참고 사항을 확인하세요.

run.save("/Users/username/Documents/run123/*.txt", base_path="/Users")
# => run의 "username/Documents/run123/" 폴더에 파일을 저장합니다.

run.save("files/*/saveme.txt")
# => "files/"의 적절한 하위 디렉터리에 각 "saveme.txt" 파일을 저장합니다.

# 컨텍스트 매니저를 사용하지 않으므로 run을 명시적으로 종료합니다.
run.finish()

method Run.status

status() → RunStatus
내부 백엔드에서 현재 run의 동기화 상태에 대한 정보를 가져옵니다.

메서드 Run.unwatch

unwatch(
    models: 'torch.nn.Module | Sequence[torch.nn.Module] | None' = None
) → None
PyTorch 모델 구조, 그래디언트 및 파라미터 훅을 제거합니다. Args:
  • models: watch가 호출된 PyTorch 모델들의 선택적 목록입니다.

메서드 Run.upsert_artifact

upsert_artifact(
    artifact_or_path: 'Artifact | str',
    name: 'str | None' = None,
    type: 'str | None' = None,
    aliases: 'list[str] | None' = None,
    distributed_id: 'str | None' = None
) → Artifact
run의 출력으로 아직 최종 확정되지 않은 아티팩트를 선언(또는 기존 아티팩트에 추가)합니다. 아티팩트를 최종 확정하려면 반드시 run.finish_artifact()를 호출해야 합니다. 이는 분산 작업들이 모두 동일한 아티팩트에 기여해야 할 때 유용합니다. Args:
  • artifact_or_path: 이 아티팩트의 내용이 위치한 경로로, 다음과 같은 형식일 수 있습니다:
    • /local/directory
    • /local/directory/file.txt
    • s3://bucket/path
  • name: 아티팩트 이름입니다. 앞에 “entity/project”가 붙을 수 있습니다. 지정하지 않으면, 현재 run ID가 앞에 붙은 경로의 기본 이름이 사용됩니다. 유효한 이름 형식은 다음과 같습니다:
    • name:version
    • name:alias
    • digest
  • type: 로깅할 아티팩트 타입입니다. 일반적인 예로는 dataset, model 등이 있습니다.
  • aliases: 이 아티팩트에 적용할 별칭으로, 기본값은 ["latest"]입니다.
  • distributed_id: 모든 분산 작업이 공유하는 고유 문자열입니다. None이면 run의 그룹 이름이 기본값입니다.
Returns: Artifact 객체를 반환합니다.

메서드 Run.use_artifact

use_artifact(
    artifact_or_name: 'str | Artifact',
    type: 'str | None' = None,
    aliases: 'list[str] | None' = None,
    use_as: 'str | None' = None
) → Artifact
run에 대한 입력 아티팩트로 선언합니다. 반환된 객체에서 download 또는 file을 호출하여 내용을 로컬에 가져옵니다. Args:
  • artifact_or_name: 사용할 아티팩트의 이름입니다. 아티팩트가 로깅된 프로젝트 이름이 앞에 붙을 수 있습니다 (“entity” 또는 “entity/project”). 이름에 entity가 지정되지 않은 경우 Run 또는 API 설정에 지정된 entity가 사용됩니다. 유효한 이름 형식은 다음과 같습니다.
    • name:version
    • name:alias
  • type: 사용할 아티팩트의 타입입니다.
  • aliases: 이 아티팩트에 적용할 별칭입니다.
  • use_as: 이 인수는 사용이 중단(deprecated)되었으며 아무 역할도 하지 않습니다.
Returns: Artifact 객체를 반환합니다. Examples:
import wandb

run = wandb.init(project="<example>")

# 이름과 별칭으로 아티팩트 사용
artifact_a = run.use_artifact(artifact_or_name="<name>:<alias>")

# 이름과 버전으로 아티팩트 사용
artifact_b = run.use_artifact(artifact_or_name="<name>:v<version>")

# entity/project/name:alias로 아티팩트 사용
artifact_c = run.use_artifact(
    artifact_or_name="<entity>/<project>/<name>:<alias>"
)

# entity/project/name:version으로 아티팩트 사용
artifact_d = run.use_artifact(
    artifact_or_name="<entity>/<project>/<name>:v<version>"
)

# 컨텍스트 매니저를 사용하지 않으므로 run을 명시적으로 종료합니다.
run.finish()

method Run.use_model

use_model(name: 'str') → FilePathStr
모델 아티팩트 ‘name’에 로깅된 파일을 다운로드합니다. Args:
  • name: 모델 아티팩트 이름입니다. ‘name’은 이미 로깅된 기존 모델 아티팩트의 이름과 일치해야 합니다. entity/project/ 접두사가 붙을 수 있습니다. 유효한 이름 형식은 다음과 같습니다.
    • model_artifact_name:version
    • model_artifact_name:alias
Returns:
  • path (str): 다운로드된 모델 아티팩트 파일 경로입니다.
Raises:
  • AssertionError: 모델 아티팩트 ‘name’의 타입에 ‘model’이라는 부분 문자열이 포함되지 않은 경우 발생합니다.

메서드 Run.watch

watch(
    models: 'torch.nn.Module | Sequence[torch.nn.Module]',
    criterion: 'torch.F | None' = None,
    log: "Literal['gradients', 'parameters', 'all'] | None" = 'gradients',
    log_freq: 'int' = 1000,
    idx: 'int | None' = None,
    log_graph: 'bool' = False
) → None
주어진 PyTorch 모델에 훅을 연결해 그래디언트와 모델의 연산 그래프를 모니터링합니다. 이 함수는 트레이닝 중에 파라미터, 그래디언트, 또는 둘 다를 추적할 수 있습니다. 인자(Args):
  • models: 모니터링할 단일 모델 또는 모델들의 시퀀스입니다.
  • criterion: 최적화 중인 손실 함수입니다(옵션).
  • log: “gradients”, “parameters”, 또는 “all” 중 무엇을 로깅할지 지정합니다. 로깅을 비활성화하려면 None으로 설정합니다. (기본값=“gradients”)
  • log_freq: 그래디언트와 파라미터를 로깅할 빈도(배치 단위)입니다. (기본값=1000)
  • idx: wandb.watch로 여러 모델을 추적할 때 사용하는 인덱스입니다. (기본값=None)
  • log_graph: 모델의 연산 그래프를 로깅할지 여부입니다. (기본값=False)
예외(Raises): ValueError: wandb.init()이 호출되지 않았거나, 어떤 모델이라도 torch.nn.Module의 인스턴스가 아닌 경우 발생합니다.