> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-workspaces-or-filter.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Run

export const GitHubLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="github-source-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    GitHub 소스 코드
  </a>;

<GitHubLink url="https://github.com/wandb/wandb/blob/main/wandb/sdk/wandb_run.py" />

## <kbd>class</kbd> `Run`

W\&B에 로깅되는 계산 단위입니다. 일반적으로는 ML 실험을 의미합니다.

새 run을 생성하려면 [`wandb.init()`](https://docs.wandb.ai/models/ref/python/functions/init)을 call하세요. `wandb.init()`은 새 run을 시작하고 `wandb.Run` 객체를 반환합니다. 각 run에는 고유한 ID(run ID)가 연결됩니다. W\&B는 run이 자동으로 종료되도록 컨텍스트 관리자(`with` 문)를 사용할 것을 권장합니다.

분산 트레이닝 실험의 경우, 프로세스마다 하나의 run을 사용해 각 프로세스를 개별적으로 추적할 수도 있고, 모든 프로세스를 하나의 run으로 추적할 수도 있습니다. 자세한 내용은 [Log distributed training experiments](https://docs.wandb.ai/models/track/log/distributed-training)를 참조하세요.

`wandb.Run.log()`를 사용해 run에 데이터를 로깅할 수 있습니다. `wandb.Run.log()`로 로깅한 모든 항목은 해당 run으로 전송됩니다. 자세한 내용은 [Create an experiment](https://docs.wandb.ai/models/track/create-an-experiment) 또는 [`wandb.init`](https://docs.wandb.ai/models/ref/python/functions/init) API 레퍼런스 페이지를 참조하세요.

[`wandb.apis.public`](https://docs.wandb.ai/models/ref/python/public-api/api) 네임스페이스에는 또 다른 `Run` 객체가 있습니다. 이 객체는 이미 생성된 run과 상호작용하는 데 사용됩니다.

**속성:**

* `summary`: (Summary) run의 요약으로, 딕셔너리와 유사한 객체입니다. 자세한 내용은
* `[Log summary metrics](https`: //docs.wandb.ai/models/track/log/log-summary).

**예시:**
`wandb.init()`으로 run 생성:

```python theme={null}
import wandb

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

### <kbd>속성</kbd> Run.config

이 run에 연결된 설정 객체입니다.

**반환값:**

* `wandb_config.Config`: `config` 속성 값입니다.

***

### <kbd>속성</kbd> Run.config\_static

이 run에 연결된 정적 설정 객체입니다.

**반환값:**

* `wandb_config.ConfigStatic`: config\_static 속성 값입니다.

***

### <kbd>속성</kbd> Run.dir

run에 연결된 파일이 저장되는 디렉터리입니다.

**반환값:**

* `str`: `dir` 속성 값입니다.

***

### <kbd>속성</kbd> Run.disabled

run이 비활성화된 경우 True, 그렇지 않으면 False입니다.

**반환값:**

* `bool`: 비활성화 여부를 나타내는 속성 값입니다.

***

### <kbd>속성</kbd> Run.entity

run과 연결된 W\&B entity의 이름입니다.

entity는 사용자 이름, 팀 이름 또는 조직 이름일 수 있습니다.

**반환값:**

* `str`: entity 속성 값입니다.

***

### <kbd>속성</kbd> Run.group

이 run에 연결된 그룹의 이름을 반환합니다.

run을 함께 그룹화하면 관련 실험을 W\&B UI에서 한데 모아 구성하고 시각화할 수 있습니다. 이는 분산 트레이닝이나 교차 검증처럼 여러 run을 하나의 통합된 실험으로 보고 관리해야 하는 시나리오에서 특히 유용합니다.

모든 프로세스가 동일한 run 객체를 공유하는 공유 모드에서는 run이 하나뿐이라 그룹화가 필요 없으므로, 일반적으로 그룹을 설정할 필요가 없습니다.

**반환값:**

* `str`: 그룹 속성 값입니다.

***

### <kbd>속성</kbd> Run.id

이 run의 식별자입니다.

**반환값:**

* `str`: id 속성 값.

***

### <kbd>속성</kbd> Run.job\_type

run과 연결된 작업 유형의 이름입니다.

W\&B App의 run Overview 페이지에서 run의 작업 유형을 확인할 수 있습니다.

이를 사용하면 "트레이닝", "evaluation", "Inference"와 같은 작업 유형별로 run을 분류할 수 있습니다. 이는 W\&B UI에서 run을 정리하고 필터링하는 데 유용하며, 특히 같은 프로젝트에 서로 다른 작업 유형의 run이 여러 개 있을 때 더욱 유용합니다. 자세한 내용은 [run 정리하기](https://docs.wandb.ai/models/runs#organize-runs)를 참조하세요.

**반환값:**

* `str`: `job_type` 속성 값입니다.

***

### <kbd>속성</kbd> Run.name

run의 표시 이름입니다.

표시 이름은 고유하지 않을 수 있으며, 설명적인 이름일 수 있습니다. 기본적으로는 무작위로 생성됩니다.

**반환값:**

* `str | None`: name 속성 값입니다.

***

### <kbd>속성</kbd> Run.notes

run에 연결된 메모가 있는 경우 해당 메모입니다.

메모는 여러 줄 문자열일 수 있으며, `$x + 3$`처럼 `$$` 안에 Markdown과 LaTeX 수식을 사용할 수도 있습니다.

**반환값:**

* `str | None`: notes 속성의 값입니다.

***

### <kbd>속성</kbd> Run.offline

run이 오프라인 상태이면 True, 아니면 False입니다.

**반환값:**

* `bool`: offline 속성 값입니다.

***

### <kbd>속성</kbd> Run.path

run의 경로입니다.

run 경로에는 entity, 프로젝트, run ID가 포함되며, 형식은 `entity/project/run_id`입니다.

**반환값:**

* `str`: 경로 속성 값입니다.

***

### <kbd>속성</kbd> Run.project

run에 연결된 W\&B 프로젝트의 이름입니다.

**반환값:**

* `str`: 프로젝트 속성 값입니다.

***

### <kbd>속성</kbd> Run.project\_url

해당 run에 연결된 W\&B 프로젝트의 URL입니다(있는 경우).

오프라인 run에는 프로젝트 URL이 없습니다.

**반환값:**

* `str | None`: `project_url` 속성 값입니다.

***

### <kbd>속성</kbd> Run.resumed

run이 재개되었으면 True, 그렇지 않으면 False입니다.

**반환값:**

* `bool`: resumed 속성의 값입니다.

***

### <kbd>속성</kbd> Run.settings

run의 Settings 객체를 불변으로 복사한 사본입니다.

**반환값:**

* `Settings`: settings 속성 값입니다.

***

### <kbd>속성</kbd> Run.start\_time

run이 시작된 시점의 Unix 타임스탬프(초 단위)입니다.

**반환값:**

* `float`: start\_time 속성 값.

***

### <kbd>속성</kbd> Run.sweep\_id

run에 연결된 sweep의 식별자입니다(있는 경우).

**반환값:**

* `str | None`: `sweep_id` 속성 값.

***

### <kbd>속성</kbd> Run.sweep\_url

run에 연결된 sweep의 URL입니다(있는 경우).

오프라인 run에는 sweep URL이 없습니다.

**반환값:**

* `str | None`: sweep\_url 속성 값입니다.

***

### <kbd>속성</kbd> Run.tags

run에 연결된 태그가 있으면 해당 태그입니다.

**반환값:**

* `tuple | None`: tags 속성의 값입니다.

***

### <kbd>속성</kbd> Run.url

W\&B run에 URL이 있으면 해당 URL입니다.

오프라인 run에는 URL이 없습니다.

**반환값:**

* `str | None`: url 속성 값입니다.

***

### <kbd>방법</kbd> `Run.alert`

```python theme={null}
alert(
    title: 'str',
    text: 'str',
    level: 'str | AlertLevel | None' = None,
    wait_duration: 'int | float | timedelta | None' = None
) → None
```

주어진 제목과 텍스트로 Alert를 생성합니다.

**매개변수:**

* `title`:  Alert의 제목입니다. 64자 미만이어야 합니다.
* `text`:  Alert의 본문입니다.
* `level`:  사용할 Alert 수준입니다. `INFO`, `WARN`, `ERROR` 중 하나여야 합니다.
* `wait_duration`:  같은 제목의 Alert를 다시 보내기 전에 대기할 시간(초)입니다.

***

### <kbd>방법</kbd> `Run.define_metric`

```python theme={null}
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()`로 로깅되는 메트릭을 사용자 지정합니다.

**매개변수:**

* `name`:  사용자 지정할 메트릭의 이름입니다.
* `step_metric`:  자동 생성된 차트에서 이 메트릭의 X축으로 사용할 다른 메트릭의 이름입니다.
* `step_sync`:  명시적으로 제공되지 않으면 `wandb.Run.log()`에 step\_metric의 마지막 값을 자동으로 삽입합니다. step\_metric이 지정된 경우 기본값은 True입니다.
* `hidden`:  자동 플롯에서 이 메트릭을 숨깁니다.
* `summary`:  summary에 추가할 집계 메트릭을 지정합니다. 지원되는 집계에는 "min", "max", "mean", "last", "first", "best", "copy", "none"이 포함됩니다. "none"을 지정하면 summary가 생성되지 않습니다. "best"는 goal 매개변수와 함께 사용하지만, 현재는 사용 중단되었으므로 사용하지 않는 것이 좋으며 대신 "min" 또는 "max"를 사용하세요. "copy"도 사용 중단되었으므로 사용하지 않는 것이 좋습니다.
* `goal`:  "best" summary 유형을 해석하는 방식을 지정합니다. 지원되는 옵션은 "minimize"와 "maximize"입니다. "goal"은 사용 중단되었으므로 사용하지 않는 것이 좋으며, 대신 "min" 또는 "max"를 사용하세요.
* `overwrite`:  false이면 이 call은 동일한 메트릭에 대한 이전 `define_metric` call과 병합되며, 지정되지 않은 매개변수에는 이전 call의 값이 사용됩니다. true이면 지정되지 않은 매개변수가 이전 call에서 지정된 값을 덮어씁니다.

**반환값:**
이 call을 나타내는 객체이며, 그 외에는 버려도 됩니다.

***

### <kbd>방법</kbd> `Run.display`

```python theme={null}
display(height: 'int' = 420, hidden: 'bool' = False) → bool
```

Jupyter에 이 run을 표시합니다.

***

### <kbd>방법</kbd> `Run.finish`

```python theme={null}
finish(exit_code: 'int | None' = None, quiet: 'bool | None' = None) → None
```

run을 종료하고 남아 있는 데이터를 모두 업로드합니다.

W\&B run의 완료를 표시하고 모든 데이터가 서버에 동기화되었는지 확인합니다. run의 최종 상태는 종료 조건과 동기화 상태에 따라 결정됩니다.

Run 상태:

* Running: 데이터를 logging하고 하트비트를 전송 중인 활성 run입니다.
* Crashed: 예기치 않게 하트비트 전송이 중단된 run입니다.
* Finished: 모든 데이터가 동기화된 상태로 성공적으로 완료된 run입니다(`exit_code=0`).
* Failed: 오류와 함께 완료된 run입니다(`exit_code!=0`).
* Killed: 완료되기 전에 강제로 중지된 run입니다.

**매개변수:**

* `exit_code`:  run의 종료 상태를 나타내는 정수입니다. 성공 시 0을 사용하며, 다른 값이면 run이 실패로 표시됩니다.
* `quiet`:  사용 중단. `wandb.Settings(quiet=...)`를 사용해 logging 상세 수준을 설정하세요.

***

### <kbd>방법</kbd> `Run.finish_artifact`

```python theme={null}
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
```

최종화되지 않은 artifact를 run의 출력으로 완료 처리합니다.

이후 동일한 distributed ID로 `"upsert"`를 수행하면 새 버전이 생성됩니다.

**매개변수:**

* `artifact_or_path`:  이 artifact의 콘텐츠 경로입니다. 다음 형식을 사용할 수 있습니다:
  * `/local/directory`
  * `/local/directory/file.txt`
  * `s3://bucket/path`  또는 `wandb.Artifact`를 호출해 생성한 Artifact 객체를 전달할 수도 있습니다.
* `name`:  artifact 이름입니다. entity/프로젝트 접두사를 붙일 수 있습니다. 유효한 이름은 다음 형식일 수 있습니다:
  * name:version
  * name:alias
  * digest  지정하지 않으면 현재 run id가 앞에 붙은 경로의 basename이 기본값으로 사용됩니다.
* `type`:  로깅할 artifact의 유형입니다. 예로는 `dataset`, `model`이 있습니다
* `aliases`:  이 artifact에 적용할 alias입니다. 기본값은 `["latest"]`입니다
* `distributed_id`:  모든 분산 작업이 공유하는 고유 문자열입니다. None이면 run의 group name이 기본값으로 사용됩니다.

**반환값:**
`Artifact` 객체입니다.

***

### <kbd>방법</kbd> `Run.link_artifact`

```python theme={null}
link_artifact(
    artifact: 'Artifact',
    target_path: 'str',
    aliases: 'list[str] | None' = None
) → Artifact
```

artifact를 collection에 연결합니다.

“link”는 W\&B가 artifact를 저장하는 위치와 레지스트리에서 artifact에 접근할 수 있는 위치를 연결하는 포인터를 뜻합니다. W\&B는 artifact를 collection에 연결해도 artifact를 복제하지 않습니다.

지정한 collection에 연결된 artifact는 레지스트리 UI에서 확인할 수 있습니다.

**매개변수:**

* `artifact`:  collection에 연결할 artifact 객체입니다.
* `target_path`:  collection의 경로입니다. 경로는 접두사 "wandb-registry-"와 레지스트리 이름, collection 이름으로 구성되며 형식은 `wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}`입니다.
* `aliases`:  연결된 artifact에 하나 이상의 alias를 추가합니다. `latest` alias는 가장 최근에 연결한 artifact에 자동으로 적용됩니다.

**반환값:**
연결된 artifact입니다.

***

### <kbd>방법</kbd> `Run.link_model`

```python theme={null}
link_model(
    path: 'StrPath',
    registered_model_name: 'str',
    name: 'str | None' = None,
    aliases: 'list[str] | None' = None
) → Artifact | None
```

모델 artifact 버전을 로깅하고 모델 레지스트리의 등록된 모델에 연결합니다.

연결된 모델 버전은 지정된 등록된 모델의 UI에서 확인할 수 있습니다.

이 방법은 다음을 수행합니다.

* 'name' 모델 artifact가 로깅되었는지 확인합니다. 이미 로깅되었다면 'path'에 있는 파일과 일치하는 artifact 버전을 사용하거나 새 버전을 로깅합니다. 그렇지 않으면 'path' 아래의 파일을 유형이 'model'인 새 모델 artifact 'name'으로 로깅합니다.
* 'model-registry' 프로젝트에 'registered\_model\_name'이라는 이름의 등록된 모델이 있는지 확인합니다. 없으면 'registered\_model\_name'이라는 이름의 새 등록된 모델을 만듭니다.
* 모델 artifact 'name'의 버전을 등록된 모델 'registered\_model\_name'에 연결합니다.
* 'aliases' 목록의 alias를 새로 연결된 모델 artifact 버전에 추가합니다.

**매개변수:**

* `path`:  (str) 이 모델의 콘텐츠 경로입니다. 다음 형식 중 하나를 사용할 수 있습니다.
  * `/local/directory`
  * `/local/directory/file.txt`
  * `s3://bucket/path`
* `registered_model_name`:  모델을 연결할 등록된 모델의 이름입니다. 등록된 모델은 모델 레지스트리에 연결된 모델 버전의 collection이며, 일반적으로 팀의 특정 ML 작업을 나타냅니다. 이 등록된 모델이 속한 entity는 run에서 파생됩니다.
* `name`:  'path'의 파일이 로깅될 모델 artifact의 이름입니다. 지정하지 않으면 경로의 basename 앞에 current run id를 붙인 값이 기본값으로 사용됩니다.
* `aliases`:  등록된 모델 내에서 이 연결된 artifact에만 적용되는 alias입니다. alias "latest"는 연결된 artifact의 최신 버전에 항상 적용됩니다.

**예외:**

* `AssertionError`:  registered\_model\_name이 경로이거나 모델 artifact 'name'의 유형에 부분 문자열 'model'이 포함되어 있지 않은 경우.
* `ValueError`:  name에 유효하지 않은 특수 문자가 포함된 경우.

**반환값:**
연결에 성공한 경우 연결된 artifact를 반환하고, 그렇지 않으면 `None`을 반환합니다.

***

### <kbd>방법</kbd> `Run.log`

```python theme={null}
log(
    data: 'dict[str, Any]',
    step: 'int | None' = None,
    commit: 'bool | None' = None
) → None
```

run 데이터를 업로드합니다.

`log`를 사용해 스칼라, 이미지, 비디오, 히스토그램, 플롯, 테이블 등 run의 데이터를 기록하세요. 코드 스니펫, 모범 사례 등은 [객체 및 미디어 로깅](https://docs.wandb.ai/models/track/log)에서 확인하세요.

기본 사용법:

```python theme={null}
import wandb

with wandb.init() as run:
     run.log({"train-loss": 0.5, "accuracy": 0.9})
```

이전 코드 스니펫은 loss와 정확도를 run의 이력에 저장하고, 이러한 메트릭의 summary 값을 업데이트합니다.

[wandb.ai](https://wandb.ai)의 Workspace에서 로깅된 데이터를 시각화하거나, W\&B app의 [self-hosted instance](https://docs.wandb.ai/platform/hosting)에서 로컬로 시각화할 수 있습니다. 또는 [Public API](https://docs.wandb.ai/models/track/public-api-guide)를 사용해 데이터를 내보내 Jupyter notebook과 같은 환경에서 로컬로 시각화하고 탐색할 수도 있습니다.

로깅된 값은 반드시 스칼라일 필요가 없습니다. 이미지, 오디오, 비디오 등 [W\&B에서 지원하는 데이터 유형](https://docs.wandb.ai/models/ref/python/data-types)은 무엇이든 로깅할 수 있습니다. 예를 들어, 구조화된 데이터를 로깅하려면 `wandb.Table`을 사용할 수 있습니다. 자세한 내용은 [테이블 로깅, 데이터 시각화 및 쿼리](https://docs.wandb.ai/models/tables/tables-walkthrough) 튜토리얼을 참조하세요.

W\&B는 이름에 슬래시(`/`)가 포함된 메트릭을, 마지막 슬래시 앞의 텍스트를 기준으로 이름이 지정된 섹션으로 구성합니다. 예를 들어, 다음은 "train"과 "validate"라는 두 개의 섹션을 생성합니다:

```python theme={null}
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축에는 어떤 metric이든 사용할 수 있습니다. 자세한 내용은 [맞춤형 log 축](https://docs.wandb.ai/models/track/log/customize-logging-axes)을 참조하세요.

많은 경우 W\&B step은 트레이닝 step이라기보다 타임스탬프처럼 다루는 것이 더 적절합니다.

```python theme={null}
with wandb.init() as run:
     # 예시: X축으로 사용할 "epoch" 메트릭을 기록합니다.
     run.log({"epoch": 40, "train-loss": 0.5})
```

`step` 및 `commit` 매개변수를 사용하면 여러 번의 `wandb.Run.log()` 호출로 동일한 step에 log할 수 있습니다. 다음은 모두 동일합니다:

```python theme={null}
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`: 로깅할 step 번호입니다. `None`이면 암묵적으로 자동 증가하는 step이 사용됩니다. 설명의 참고 사항을 참조하세요.
* `commit`: true이면 step을 완료하고 업로드합니다. false이면 step에 대한 데이터를 누적합니다. 설명의 참고 사항을 참조하세요. `step`이 `None`이면 기본값은 `commit=True`이고, 그렇지 않으면 기본값은 `commit=False`입니다.

**예시:**
더 많고 자세한 예시는 [로깅 가이드](https://docs.wandb.ai/models/track/log)를 참조하세요.

기본 사용법

```python theme={null}
import wandb

with wandb.init() as run:
    run.log({"train-loss": 0.5, "accuracy": 0.9
```

증분 로깅

```python theme={null}
import wandb

with wandb.init() as run:
    run.log({"loss": 0.2}, commit=False)
    # 이 step을 기록할 준비가 되면 다른 곳에서:
    run.log({"accuracy": 0.8})
```

히스토그램

```python theme={null}
import numpy as np
import wandb

# 정규 분포에서 무작위로 그라디언트 샘플링
gradients = np.random.randn(100, 100)
with wandb.init() as run:
    run.log({"gradients": wandb.Histogram(gradients)})
```

NumPy 배열 이미지

```python theme={null}
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 이미지

```python theme={null}
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 배열 비디오

```python theme={null}
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 플롯

```python theme={null}
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 곡선

```python theme={null}
import wandb

with wandb.init() as run:
    run.log({"pr": wandb.plot.pr_curve(y_test, y_probas, labels)})
```

3D 객체

```python theme={null}
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`: 유효하지 않은 데이터를 전달한 경우.

***

### <kbd>방법</kbd> `Run.log_artifact`

```python theme={null}
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
```

artifact를 run의 출력으로 선언합니다.

**매개변수:**

* `artifact_or_path`:  (str 또는 Artifact) 이 artifact의 콘텐츠 경로입니다. 다음 형식 중 하나일 수 있습니다:
  * `/local/directory`
  * `/local/directory/file.txt`
  * `s3://bucket/path`  `wandb.Artifact`를 호출하여 생성한 Artifact 객체를 전달할 수도 있습니다.
* `name`:  (str, 선택) artifact 이름입니다. 유효한 이름은 다음 형식 중 하나일 수 있습니다:
  * name:version
  * name:alias
  * digest  지정하지 않으면 현재 run ID가 앞에 붙은 경로의 basename이 기본값으로 사용됩니다.
* `type`:  (str) 로그할 artifact의 유형입니다. 예를 들어 `dataset`, `model`이 있습니다.
* `aliases`:  (목록, 선택) 이 artifact에 적용할 alias입니다. 기본값은 `["latest"]`입니다.
* `tags`:  (목록, 선택) 이 artifact에 적용할 태그입니다(있는 경우).

**반환값:**
`Artifact` 객체.

***

### <kbd>방법</kbd> `Run.log_code`

```python theme={null}
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 0x10b622160>,
    exclude_fn: 'Callable[[str, str], bool] | Callable[[str], bool]' = <function exclude_wandb_fn at 0x10ccfb9c0>
) → Artifact | None
```

현재 코드 상태를 W\&B Artifact에 저장합니다.

기본적으로 현재 디렉터리를 순회하면서 `.py`로 끝나는 모든 파일을 로그합니다.

**인수:**

* `root`:  코드를 재귀적으로 찾을 상대 경로(`os.getcwd()` 기준) 또는 절대 경로입니다.
* `name`:  (str, 선택) 코드 artifact의 이름입니다. 기본적으로 artifact 이름은 `source-$PROJECT_ID-$ENTRYPOINT_RELPATH`로 지정됩니다. 여러 run이 동일한 artifact를 공유해야 하는 경우가 있을 수 있습니다. `name`을 지정하면 그렇게 할 수 있습니다.
* `include_fn`:  파일 경로와 (선택적으로) 루트 경로를 받아, 포함해야 하면 True를 반환하고 그렇지 않으면 False를 반환하는 callable입니다. 기본값은
* `defaults to `lambda path, root`:  path.endswith(".py")`.
* `exclude_fn`:  파일 경로와 (선택적으로) 루트 경로를 받아, 제외해야 하면 `True`를 반환하고 그렇지 않으면 `False`를 반환하는 callable입니다. 기본값은 `<root>/.wandb/` 및 `<root>/wandb/` 디렉터리 내의 모든 파일을 제외하는 함수입니다.

**예시:**
기본 사용법

```python theme={null}
import wandb

with wandb.init() as run:
    run.log_code()
```

고급 활용

```python theme={null}
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` 객체

***

### <kbd>방법</kbd> `Run.log_model`

```python theme={null}
log_model(
    path: 'StrPath',
    name: 'str | None' = None,
    aliases: 'list[str] | None' = None
) → None
```

`path` 내의 내용을 포함하는 모델 artifact를 run에 로깅하고, 이를 이 run의 출력으로 표시합니다.

모델 artifact의 이름에는 영숫자, 언더스코어, 하이픈만 사용할 수 있습니다.

**매개변수:**

* `path`:  (str) 이 모델의 내용이 있는 경로로, 다음 형식 중 하나일 수 있습니다:
  * `/local/directory`
  * `/local/directory/file.txt`
  * `s3://bucket/path`
* `name`:  파일 내용이 추가될 모델 artifact에 할당할 이름입니다. 지정하지 않으면 경로의 basename 앞에 현재 run ID를 붙인 값이 기본값으로 사용됩니다.
* `aliases`:  생성된 모델 artifact에 적용할 alias이며, 기본값은 `["latest"]`입니다.

**예외:**

* `ValueError`:  name에 유효하지 않은 특수 문자가 포함된 경우

**반환값:**
None

***

### <kbd>방법</kbd> `Run.mark_preempting`

```python theme={null}
mark_preempting() → None
```

이 run을 선점 예정으로 표시합니다.

또한 내부 프로세스에 이 사실을 서버에 즉시 보고하도록 알립니다.

***

### <kbd>방법</kbd> `Run.pin_config_keys`

```python theme={null}
pin_config_keys(keys: 'Sequence[str]' = ()) → None
```

Run Overview의 References 섹션에 표시할 설정 키를 고정합니다.

고정된 키는 Run Overview 페이지에서 Notes 위에 강조되어 표시됩니다. 문자열 값은 Markdown으로 렌더링되고, 문자열이 아닌 값은 일반 텍스트로 렌더링됩니다. 이 메서드를 다시 호출하면 이전에 고정한 목록이 대체됩니다.

**인수:**

* `keys`: 고정할 설정 키 이름으로, `run.config`를 통해 설정된 키와 일치해야 합니다. 점과 슬래시는 경로 구분자가 아니라 문자 그대로 처리되는 정확한 키 문자열입니다. 순서는 유지되며, 표시 순서도 이에 따라 결정됩니다.

***

### <kbd>방법</kbd> `Run.restore`

```python theme={null}
restore(
    name: 'str',
    run_path: 'str | None' = None,
    replace: 'bool' = False,
    root: 'str | None' = None
) → None | TextIO
```

클라우드 저장소에서 지정한 파일을 다운로드합니다.

파일은 현재 디렉터리 또는 run 디렉터리에 저장됩니다. 기본적으로는 파일이 아직 존재하지 않을 때만 다운로드합니다.

**매개변수:**

* `name`:  파일 이름입니다.
* `run_path`:  파일을 가져올 run의 경로(선택 사항)입니다. 예: `username/project_name/run_id`  `wandb.init`가 호출되지 않은 경우에는 필수입니다.
* `replace`:  파일이 로컬에 이미 있더라도 다운로드할지 여부입니다.
* `root`:  파일을 다운로드할 디렉터리입니다. 기본값은 현재 디렉터리이며, `wandb.init`가 호출된 경우에는 run 디렉터리입니다.

**반환값:**
파일을 찾지 못하면 None을 반환하고, 찾으면 읽기용으로 열린 파일 객체를 반환합니다.

**예외:**

* `CommError`:  W\&B가 W\&B 백엔드에 연결할 수 없는 경우입니다.
* `ValueError`:  파일을 찾을 수 없거나 `run_path`를 찾을 수 없는 경우입니다.

***

### <kbd>방법</kbd> `Run.save`

```python theme={null}
save(
    glob_str: 'str | os.PathLike',
    base_path: 'str | os.PathLike | None' = None,
    policy: 'PolicyName' = 'live'
) → bool | list[str]
```

하나 이상의 파일을 W\&B에 동기화합니다.

상대 경로는 현재 작업 디렉터리를 기준으로 합니다.

"myfiles/\*"와 같은 Unix glob은 `policy`와 관계없이 `save`가 호출되는 시점에 확장됩니다. 특히 새 파일은 자동으로 감지되지 않습니다.

업로드되는 파일의 디렉터리 구조를 제어하기 위해 `base_path`를 제공할 수 있습니다. 이는 `glob_str`의 접두사여야 하며, 그 아래의 디렉터리 구조는 유지됩니다.

절대 경로나 glob이 주어지고 `base_path`가 없으면 위 예시와 같이 디렉터리 한 단계가 유지됩니다.

파일은 자동으로 중복 제거됩니다. 같은 파일을 수정하지 않은 채 `save()`를 여러 번 호출해도 다시 업로드되지 않습니다.

**인수:**

* `glob_str`: 상대 경로, 절대 경로 또는 Unix glob입니다.
* `base_path`: 디렉터리 구조를 추론하는 데 사용할 경로입니다. 예시를 참조하세요.
* `policy`: `live`, `now`, `end` 중 하나입니다.
  * live: 파일이 변경될 때마다 업로드하며 이전 버전을 덮어씁니다
  * now: 파일을 즉시 한 번 업로드합니다
  * end: run이 종료될 때 파일을 업로드합니다

**반환값:**
일치하는 파일에 대해 생성된 심볼릭 링크 경로입니다.

과거 호환성 때문에 레거시 코드에서는 불리언을 반환할 수도 있습니다.

```python theme={null}
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()
```

***

### <kbd>방법</kbd> `Run.status`

```python theme={null}
status() → RunStatus
```

현재 run의 동기화 상태에 대한 정보를 내부 백엔드에서 조회합니다.

***

### <kbd>방법</kbd> `Run.unwatch`

```python theme={null}
unwatch(
    models: 'torch.nn.Module | Sequence[torch.nn.Module] | None' = None
) → None
```

PyTorch 모델 토폴로지, 그라디언트 및 파라미터 훅을 제거합니다.

**매개변수:**

* `models`: `watch`가 호출된 PyTorch 모델의 선택 사항인 목록입니다.

***

### <kbd>방법</kbd> `Run.upsert_artifact`

```python theme={null}
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
```

최종 확정되지 않은 artifact를 run의 출력으로 선언하거나 여기에 추가합니다.

artifact를 최종 확정하려면 `run.finish_artifact()`를 호출해야 합니다. 분산 작업이 모두 동일한 artifact에 기여해야 하는 경우에 유용합니다.

**매개변수:**

* `artifact_or_path`:  이 artifact의 콘텐츠 경로입니다. 다음 형식을 사용할 수 있습니다:
  * `/local/directory`
  * `/local/directory/file.txt`
  * `s3://bucket/path`
* `name`:  artifact 이름입니다. "entity/프로젝트" 접두사를 붙일 수 있습니다. 지정하지 않으면 현재 run ID를 경로의 basename 앞에 붙인 값이 기본값으로 사용됩니다. 유효한 이름은 다음 형식일 수 있습니다:
  * name:version
  * name:alias
  * digest
* `type`:  로깅할 artifact의 유형입니다. 일반적인 예로는 `dataset`, `model`이 있습니다.
* `aliases`:  이 artifact에 적용할 alias이며, 기본값은 `["latest"]`입니다.
* `distributed_id`:  모든 분산 작업이 공유하는 고유한 문자열입니다. None이면 run의 그룹 이름이 기본값으로 사용됩니다.

**반환값:**
`Artifact` 객체

***

### <kbd>방법</kbd> `Run.use_artifact`

```python theme={null}
use_artifact(
    artifact_or_name: 'str | Artifact',
    type: 'str | None' = None,
    aliases: 'list[str] | None' = None,
    use_as: 'str | None' = None
) → Artifact
```

artifact를 run의 입력으로 선언합니다.

반환된 객체에서 `download` 또는 `file`을 호출해 콘텐츠를 로컬로 가져옵니다.

**인수:**

* `artifact_or_name`: 사용할 artifact의 이름입니다. artifact가 로깅된 프로젝트 이름("entity" 또는 "entity/project")을 앞에 붙일 수 있습니다. 이름에 entity가 지정되지 않으면 Run 또는 API 설정의 entity가 사용됩니다. 유효한 이름 형식은 다음과 같습니다.
  * name:version
  * name:alias
* `type`: 사용할 artifact의 유형입니다.
* `aliases`: 이 artifact에 적용할 alias입니다.
* `use_as`: 이 매개변수는 사용 중단되었으며 아무 작업도 하지 않습니다.

**반환값:**
`Artifact` 객체입니다.

**예시:**

```python theme={null}
import wandb

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

# 이름과 alias로 artifact 사용
artifact_a = run.use_artifact(artifact_or_name="<name>:<alias>")

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

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

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

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

***

### <kbd>방법</kbd> `Run.use_model`

```python theme={null}
use_model(name: 'str') → FilePathStr
```

모델 artifact `name`에 로깅된 파일을 다운로드합니다.

**매개변수:**

* `name`: 모델 artifact 이름입니다. `name`은 기존에 로깅된 모델 artifact의 이름과 일치해야 합니다. `entity/project/` 접두사를 붙일 수 있습니다. 유효한 이름 형식은 다음과 같습니다.
  * model\_artifact\_name:version
  * model\_artifact\_name:alias

**반환값:**

* `path` (str): 다운로드된 모델 artifact 파일의 경로입니다.

**예외:**

* `AssertionError`: 모델 artifact `name`의 유형에 `'model'` 부분 문자열이 포함되지 않은 경우 발생합니다.

***

### <kbd>방법</kbd> `Run.watch`

```python theme={null}
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 모델에 hook을 걸어 그라디언트와 모델의 계산 그래프를 모니터링합니다.

이 함수는 트레이닝 중에 매개변수, 그라디언트 또는 둘 다 추적할 수 있습니다.

**매개변수:**

* `models`:  모니터링할 단일 모델 또는 모델 시퀀스입니다.
* `criterion`:  최적화 중인 loss 함수입니다(선택).
* `log`:  `"gradients"`, `"parameters"`, 또는 `"all"` 중 무엇을 로깅할지 지정합니다. 로깅을 비활성화하려면 None으로 설정합니다. (기본값=`"gradients"`).
* `log_freq`:  그라디언트와 매개변수를 로깅하는 빈도(배치 단위)입니다. (기본값=1000)
* `idx`:  `wandb.watch`로 여러 모델을 추적할 때 사용하는 인덱스입니다. (기본값=None)
* `log_graph`:  모델의 계산 그래프를 로깅할지 여부입니다. (기본값=False)

**예외:**
ValueError:  `wandb.init()`이 호출되지 않았거나, 모델 중 하나라도 `torch.nn.Module`의 인스턴스가 아닌 경우입니다.
