> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 로그 축 사용자 지정

> define_metric()을 사용하여 로깅한 메트릭에 대해 기본 W&B step 카운터 대신 맞춤형 X축을 설정하세요.

W\&B에 메트릭을 로깅할 때 맞춤형 X축을 설정하세요. 기본적으로 W\&B는 메트릭을 *step*으로 로깅합니다. 각 step은 `wandb.Run.log()` API 호출에 해당합니다.

예를 들어, 다음 스크립트에는 10번 반복되는 `for` 루프가 있습니다. 각 반복에서 스크립트는 `validation_loss`라는 메트릭을 로깅하고 step 번호를 1씩 증가시킵니다.

```python theme={"system"}
import wandb

with wandb.init() as run:
  # range 함수는 0부터 9까지의 숫자 시퀀스를 생성합니다
  for i in range(10):
    log_dict = {
        "validation_loss": 1/(i+1)   
    }
    run.log(log_dict)
```

프로젝트의 workspace에서 `validation_loss` 메트릭이 `step` x축에 대해 플롯되며, 이는 `wandb.Run.log()`가 호출될 때마다 1씩 증가합니다. 이전 코드에서 x축은 0, 1, 2, ..., 9의 step 번호를 보여줍니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/standard_axes.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=4d2e1f4fff4992c8c7bc61788e82ed94" alt="`step`을 x축으로 사용하는 선형 플롯 panel." width="1600" height="776" data-path="products/wandb/_media/standard_axes.png" />
</Frame>

특정 상황에서는 메트릭을 로그 x축과 같은 다른 x축에 대해 로깅하는 것이 더 합리적입니다. 로깅한 모든 메트릭을 맞춤형 x축으로 사용하려면 [`define_metric()`](/ko/products/wandb/ref/python/experiments/run#define_metric) 방법을 사용하세요.

y축으로 표시할 메트릭을 `name` 매개변수로 지정하세요. `step_metric` 매개변수는 x축으로 사용할 메트릭을 지정합니다. 맞춤형 메트릭을 로깅할 때, x축과 y축 모두에 대한 값을 딕셔너리의 키-값 쌍으로 지정하세요.

맞춤형 x축 메트릭을 설정하려면 다음 코드 스니펫을 복사하여 붙여넣으세요. `<>` 내의 값을 자신의 값으로 교체하세요:

```python theme={"system"}
import wandb

custom_step = "<custom_step>"  # 맞춤형 x축 이름
metric_name = "<metric>"  # y축 metric 이름

with wandb.init() as run:
    # step metric(x축)과 그에 대해 로깅할 metric(y축)을 지정합니다
    run.define_metric(step_metric = custom_step, name = metric_name)

    for i in range(10):
        log_dict = {
            custom_step : int,  # x축 값
            metric_name : int,  # y축 값
        }
        run.log(log_dict)
```

예를 들어, 다음 코드 스니펫은 `x_axis_squared`라는 맞춤형 x축을 생성합니다. 맞춤형 x축의 값은 for 루프 인덱스 `i`의 제곱(`i**2`)입니다. y축은 Python의 내장 `random` 모듈을 사용하여 검증 손실(`"validation_loss"`)에 대한 모의 값으로 구성됩니다.

```python theme={"system"}
import wandb
import random

with wandb.init() as run:
    run.define_metric(step_metric = "x_axis_squared", name = "validation_loss")

    for i in range(10):
        log_dict = {
            "x_axis_squared": i**2,
            "validation_loss": random.random(),
        }
        run.log(log_dict)
```

다음 이미지는 W\&B App UI에서 결과 플롯을 보여줍니다. `validation_loss` 메트릭이 맞춤형 x축 `x_axis_squared`에 대해 플롯되며, 이는 for 루프 인덱스 `i`의 제곱입니다. x축 값은 `0, 1, 4, 9, 16, 25, 36, 49, 64, 81`이며, 각각 `0, 1, 2, ..., 9`의 제곱에 해당합니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/custom_x_axes.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=53184f58512279ecba6e041c233b6958" alt="맞춤형 x축을 사용하는 선형 플롯 패널. 루프 번호의 제곱으로 W&B에 로깅된 값입니다." width="1590" height="820" data-path="products/wandb/_media/custom_x_axes.png" />
</Frame>

`globs`와 문자열 접두사를 사용하여 여러 메트릭에 대해 맞춤형 x축을 설정할 수 있습니다. 예를 들어, 다음 코드 스니펫은 `train/*` 접두사가 있는 로깅된 메트릭을 x축 `train/step`에 플롯합니다:

```python theme={"system"}
import wandb

with wandb.init() as run:

    # 다른 모든 train/ 메트릭이 이 step을 사용하도록 설정
    run.define_metric("train/*", step_metric="train/step")

    for i in range(10):
        log_dict = {
            "train/step": 2**i,  # 내부 W&B step에 따른 지수적 성장
            "train/loss": 1 / (i + 1),  # x-axis는 train/step
            "train/accuracy": 1 - (1 / (1 + i)),  # x-axis는 train/step
            "val/loss": 1 / (1 + i),  # x-axis는 내부 wandb step
        }
        run.log(log_dict)
```
