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

# Keras

> W&B Keras 콜백을 사용해 실험을 추적하고, 모델 체크포인트를 저장하고, 트레이닝 중 예측을 시각화합니다.

export const ColabLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="colab-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01.21.03zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z" />
    </svg>
    Colab에서 사용해 보기
  </a>;

Keras 콜백을 사용해 실험을 추적하고, 모델 체크포인트를 기록하고, 모델 예측을 시각화하세요. Keras 콜백은 Python SDK 버전 `0.13.4` 이상에서 `wandb.integration.keras` 모듈로 사용할 수 있습니다.

W\&B Keras 인테그레이션은 다음 콜백을 제공합니다:

* **`WandbMetricsLogger`** : [Experiment Tracking](/ko/models/track/)에 이 콜백을 사용하세요. 트레이닝 및 검증 메트릭과 시스템 메트릭을 함께 W\&B에 기록합니다.
* **`WandbModelCheckpoint`** : 모델 체크포인트를 W\&B [Artifacts](/ko/models/artifacts/)에 기록하려면 이 콜백을 사용하세요.
* **`WandbEvalCallback`**: 이 기본 콜백은 대화형 시각화를 위해 모델 예측을 W\&B [Tables](/ko/models/tables/)에 기록합니다.

<div id="install-and-import-keras-integration">
  ## Keras 인테그레이션 설치 및 임포트하기
</div>

최신 버전의 W\&B를 설치합니다.

```bash theme={null}
pip install -U wandb
```

Keras 인테그레이션을 사용하려면 `wandb.integration.keras`에서 필요한 클래스를 임포트하세요:

```python theme={null}
import wandb
from wandb.integration.keras import WandbMetricsLogger, WandbModelCheckpoint, WandbEvalCallback
```

다음 섹션에서는 각 콜백을 코드 예제와 함께 자세히 설명합니다.

<div id="track-experiments-with-wandbmetricslogger">
  ## `WandbMetricsLogger`로 실험 추적하기
</div>

<ColabLink url="https://colab.research.google.com/github/wandb/examples/blob/master/colabs/keras/Use_WandbMetricLogger_in_your_Keras_workflow.ipynb" />

`wandb.integration.keras.WandbMetricsLogger()`는 `on_epoch_end`, `on_batch_end` 등의 콜백 메서드가 인수로 받는 Keras의 `logs` 딕셔너리를 자동으로 로깅합니다.

아래 예시는 Keras 워크플로에서 `WandbMetricsLogger()`를 사용하는 방법을 보여줍니다. 먼저 원하는 옵티마이저, 손실 함수, 메트릭으로 모델을 컴파일합니다. 그런 다음 `wandb.init()`을 사용해 W\&B run을 초기화합니다. 마지막으로 `WandbMetricsLogger()` 콜백을 `model.fit()`에 전달합니다.

```python theme={null}
import wandb
from wandb.integration.keras import WandbMetricsLogger
import tensorflow as tf

model.compile(
    optimizer = "adam",
    loss = "categorical_crossentropy",
    metrics = ["accuracy", tf.keras.metrics.TopKCategoricalAccuracy(k=5, name='top@5_accuracy')]
)

# 새 W&B Run 초기화
with wandb.init(config={"batch_size": 64}) as run:

    # WandbMetricsLogger를 model.fit에 전달
    model.fit(
        X_train, y_train, validation_data=(X_test, y_test), callbacks=[WandbMetricsLogger()]
    )
```

이전 예제는 각 에포크가 끝날 때마다 `loss`, `accuracy`, `top@5_accuracy`와 같은 트레이닝 및 검증 메트릭을 W\&B에 로깅합니다. 또한 다음 항목도 로깅합니다:

<div id="wandbmetricslogger-reference">
  ### `WandbMetricsLogger` 레퍼런스
</div>

| Parameter             | 설명                                                                                                                                                       |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `log_freq`            | (`epoch`, `batch`, 또는 `int`): `epoch`이면 각 에포크가 끝날 때 메트릭을 로깅합니다. `batch`이면 각 배치가 끝날 때 메트릭을 로깅합니다. `int`이면 해당 수만큼의 배치가 끝날 때마다 메트릭을 로깅합니다. 기본값은 `epoch`입니다. |
| `initial_global_step` | (int): `initial_epoch`부터 트레이닝을 재개하고 학습률 스케줄러를 사용하는 경우, 학습률을 올바르게 기록하려면 이 인수를 사용하세요. 이는 `step_size * initial_step`으로 계산할 수 있습니다. 기본값은 0입니다.               |

<div id="checkpoint-a-model-using-wandbmodelcheckpoint">
  ## `WandbModelCheckpoint`를 사용해 모델 체크포인트 저장하기
</div>

<ColabLink url="https://colab.research.google.com/github/wandb/examples/blob/master/colabs/keras/Use_WandbModelCheckpoint_in_your_Keras_workflow.ipynb" />

`WandbModelCheckpoint` 콜백을 사용하면 Keras 모델(`SavedModel` 형식) 또는 모델 가중치를 주기적으로 저장하고, 모델 버전 관리를 위해 이를 `wandb.Artifact`로 W\&B에 업로드합니다.

이 콜백은 [`tf.keras.callbacks.ModelCheckpoint()`](https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/ModelCheckpoint)를 서브클래싱하므로 체크포인트 로직은 부모 콜백이 처리합니다.

이 콜백은 다음을 저장합니다:

* monitor를 기준으로 가장 좋은 성능을 달성한 모델
* 성능과 관계없이 매 에포크가 끝날 때의 모델
* 각 에포크가 끝날 때 또는 고정된 수의 트레이닝 배치 후의 모델
* 모델 가중치만 또는 전체 모델
* `SavedModel` 형식 또는 `.h5` 형식의 모델

이 콜백은 `WandbMetricsLogger()`와 함께 사용하세요.

```python theme={null}
import wandb
from wandb.integration.keras import WandbMetricsLogger, WandbModelCheckpoint

# 새 W&B run 초기화
with wandb.init(config={"bs": 12}) as run:

    # WandbModelCheckpoint를 model.fit에 전달
    model.fit(
        X_train,
        y_train,
        validation_data=(X_test, y_test),
        callbacks=[
            WandbMetricsLogger(),
            WandbModelCheckpoint("models"),
        ],
    )
```

<div id="wandbmodelcheckpoint-reference">
  ### `WandbModelCheckpoint` 레퍼런스
</div>

| 매개변수                      | 설명                                                                                                                                                                                                          |   |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
| `filepath`                | (str): 모델 파일을 저장할 경로입니다.                                                                                                                                                                                    |   |
| `monitor`                 | (str): 모니터링할 메트릭 이름입니다.                                                                                                                                                                                     |   |
| `verbose`                 | (int): 상세 출력 모드로, 0 또는 1입니다. 0이면 아무 메시지도 출력하지 않고, 1이면 콜백이 동작을 수행할 때 메시지를 표시합니다.                                                                                                                             |   |
| `save_best_only`          | (Boolean): `save_best_only=True`이면 `monitor` 및 `mode` 속성에 따라 가장 최근 모델 또는 최적이라고 판단한 모델만 저장합니다.                                                                                                               |   |
| `save_weights_only`       | (Boolean): True이면 모델 가중치만 저장합니다.                                                                                                                                                                            |   |
| `mode`                    | (`auto`, `min`, 또는 `max`): 예를 들어 `val_acc`에는 `max`를, `val_loss`에는 `min`을 설정합니다.                                                                                                                             |   |
| `save_freq`               | ("epoch" 또는 int): `epoch`를 사용하면 콜백이 각 에포크 후에 모델을 저장합니다. 정수를 사용하면 지정한 수의 배치가 끝날 때마다 콜백이 모델을 저장합니다. `val_acc`나 `val_loss` 같은 검증 메트릭을 모니터링하는 경우 이러한 메트릭은 에포크가 끝날 때만 사용할 수 있으므로 `save_freq`를 "epoch"로 설정해야 합니다. |   |
| `options`                 | (str): `save_weights_only`가 true이면 선택적 `tf.train.CheckpointOptions` 객체이고, false이면 선택적 `tf.saved_model.SaveOptions` 객체입니다.                                                                                   |   |
| `initial_value_threshold` | (float): 모니터링할 메트릭의 초기 "최적" 값을 나타내는 부동소수점 값입니다.                                                                                                                                                             |   |

<div id="log-checkpoints-after-n-epochs">
  ### N 에포크마다 체크포인트 log
</div>

기본값(`save_freq="epoch"`)에서는 콜백이 각 에포크가 끝날 때마다 체크포인트를 생성하고 이를 artifact로 upload합니다. 특정 개수의 배치마다 체크포인트를 생성하려면 `save_freq`를 정수로 설정하세요. `N` 에포크마다 체크포인트를 생성하려면 `train` 데이터로더의 카디널리티를 계산해 `save_freq`에 전달하세요:

```python theme={null}
WandbModelCheckpoint(
    filepath="models/",
    save_freq=int((trainloader.cardinality()*N).numpy())
)
```

<div id="efficiently-log-checkpoints-on-a-tpu-architecture">
  ### TPU 아키텍처에서 체크포인트를 효율적으로 기록하기
</div>

TPU에서 체크포인트를 저장하는 동안 `UnimplementedError: File system scheme '[local]' not implemented` 오류 메시지가 나타날 수 있습니다. 이는 모델 디렉터리(`filepath`)가 클라우드 저장소 버킷 경로(`gs://bucket-name/...`)를 사용해야 하고, 이 버킷에 TPU 서버가 접근할 수 있어야 하기 때문입니다. 반면 W\&B는 체크포인트 저장에 로컬 경로를 사용하고, 이후 이를 artifact로 업로드합니다.

```python theme={null}
checkpoint_options = tf.saved_model.SaveOptions(experimental_io_device="/job:localhost")

WandbModelCheckpoint(
    filepath="models/,
    options=checkpoint_options,
)
```

<div id="visualize-model-predictions-using-wandbevalcallback">
  ## `WandbEvalCallback`을 사용해 모델 예측 시각화하기
</div>

<ColabLink url="https://colab.research.google.com/github/wandb/examples/blob/master/colabs/keras/Use_WandbEvalCallback_in_your_Keras_workflow.ipynb" />

`WandbEvalCallback()`는 주로 모델 예측용 Keras 콜백을 만들고, 부차적으로는 데이터셋 시각화에도 사용할 수 있는 추상 기반 클래스입니다.

이 추상 콜백은 데이터셋과 태스크에 구애받지 않습니다. 이를 사용하려면 이 기반 `WandbEvalCallback()` 콜백 클래스를 상속하고 `add_ground_truth` 및 `add_model_prediction` 메서드를 구현하세요.

`WandbEvalCallback()`는 다음을 위한 메서드를 제공하는 유틸리티 클래스입니다.

* 데이터 및 예측 `wandb.Table()` 인스턴스를 생성합니다.
* 데이터와 예측 Tables를 `wandb.Artifact()`로 로깅합니다.
* `on_train_begin`에서 데이터 테이블을 로깅합니다.
* `on_epoch_end`에서 예측 테이블을 로깅합니다.

다음 예제에서는 이미지 분류 태스크에 `WandbClfEvalCallback`을 사용합니다. 이 예제 콜백은 검증 데이터(`data_table`)를 W\&B에 로깅하고, Inference를 수행한 다음, 매 에포크가 끝날 때마다 예측(`pred_table`)을 W\&B에 로깅합니다.

```python theme={null}
import wandb
from wandb.integration.keras import WandbMetricsLogger, WandbEvalCallback


# 모델 예측 시각화 콜백 구현
class WandbClfEvalCallback(WandbEvalCallback):
    def __init__(
        self, validation_data, data_table_columns, pred_table_columns, num_samples=100
    ):
        super().__init__(data_table_columns, pred_table_columns)

        self.x = validation_data[0]
        self.y = validation_data[1]

    def add_ground_truth(self, logs=None):
        for idx, (image, label) in enumerate(zip(self.x, self.y)):
            self.data_table.add_data(idx, wandb.Image(image), label)

    def add_model_predictions(self, epoch, logs=None):
        preds = self.model.predict(self.x, verbose=0)
        preds = tf.argmax(preds, axis=-1)

        table_idxs = self.data_table_ref.get_index()

        for idx in table_idxs:
            pred = preds[idx]
            self.pred_table.add_data(
                epoch,
                self.data_table_ref.data[idx][0],
                self.data_table_ref.data[idx][1],
                self.data_table_ref.data[idx][2],
                pred,
            )


# ...

# 새 W&B Run 초기화
with wandb.init(config={"hyper": "parameter"}) as run:

    # Model.fit에 콜백 추가
    model.fit(
        X_train,
        y_train,
        validation_data=(X_test, y_test),
        callbacks=[
            WandbMetricsLogger(),
            WandbClfEvalCallback(
                validation_data=(X_test, y_test),
                data_table_columns=["idx", "image", "label"],
                pred_table_columns=["epoch", "idx", "image", "label", "pred"],
            ),
        ],
    )
```

<div id="wandbevalcallback-reference">
  ### `WandbEvalCallback` 레퍼런스
</div>

| 매개변수                 | 설명                           |
| -------------------- | ---------------------------- |
| `data_table_columns` | (list) `data_table`의 열 이름 목록 |
| `pred_table_columns` | (list) `pred_table`의 열 이름 목록 |

<div id="memory-footprint-details">
  ### 메모리 사용량 세부 정보
</div>

`on_train_begin` 방법이 호출되면 `data_table`을 W\&B에 기록합니다. `data_table`이 W\&B Artifact로 업로드되면 `data_table_ref` 클래스 변수를 통해 이 테이블의 레퍼런스에 접근할 수 있습니다. `data_table_ref`는 `self.data_table_ref[idx][n]`처럼 인덱싱할 수 있는 2차원 목록이며, 여기서 `idx`는 행 번호이고 `n`은 열 번호입니다. 아래 예제에서 사용 예를 살펴보겠습니다.

<div id="customize-the-callback">
  ### 콜백 사용자 지정하기
</div>

더 세밀하게 제어하려면 `on_train_begin` 또는 `on_epoch_end` 메서드를 재정의할 수 있습니다. `N`개 배치 후에 샘플을 로깅하려면 `on_train_batch_end` 메서드를 구현하면 됩니다.

<Note>
  `WandbEvalCallback`을 상속해 모델 예측 시각화를 위한 콜백을 구현하는 중이며, 명확히 하거나 수정이 필요한 사항이 있다면 [issue](https://github.com/wandb/wandb/issues)를 열어 알려주세요.
</Note>

<div id="wandbcallback-legacy">
  ## `WandbCallback` \[레거시]
</div>

W\&B 라이브러리의 `WandbCallback()` 클래스를 사용하면 `model.fit()`에서 추적하는 모든 메트릭과 손실 값을 자동으로 저장할 수 있습니다.

```python theme={null}
import wandb
from wandb.integration.keras import WandbCallback

with wandb.init(config={"hyper": "parameter"}) as run:

    # Keras에서 모델을 설정하는 코드

    # model.fit에 콜백 전달
    model.fit(
        X_train, y_train, validation_data=(X_test, y_test), callbacks=[WandbCallback()]
    )
```

짧은 비디오 [1분 안에 Keras와 W\&B 시작하기](https://www.youtube.com/watch?ab_channel=Weights\&Biases\&v=4FjDIJ-vO_M)를 시청해 보세요.

더 자세한 내용은 [W\&B를 Keras와 통합하기](https://www.youtube.com/watch?v=Bsudo7jbMow\&ab_channel=Weights%26Biases) 비디오를 시청하세요. [Colab Jupyter Notebook](https://colab.research.google.com/github/wandb/examples/blob/master/colabs/keras/Keras_pipeline_with_Weights_and_Biases.ipynb)도 살펴볼 수 있습니다.

<Note>
  스크립트, [Fashion MNIST 예제](https://github.com/wandb/examples/blob/master/examples/keras/keras-cnn-fashion/train.py), 그리고 이 예제가 생성하는 [W\&B 대시보드](https://wandb.ai/wandb/keras-fashion-mnist/runs/5z1d85qs)가 포함된 [예제 repo](https://github.com/wandb/examples)도 참조하세요.
</Note>

`WandbCallback` 클래스는 다양한 로깅 설정 옵션을 지원합니다. 예를 들어 모니터링할 메트릭 지정, 가중치와 그라디언트 추적, training\_data 및 validation\_data에 대한 예측 로깅 등이 있습니다.

자세한 내용은 `keras.WandbCallback` 레퍼런스 문서를 참조하세요.

`WandbCallback`는 다음을 수행합니다.

* Keras가 수집한 모든 메트릭의 이력 데이터를 자동으로 로깅합니다. 여기에는 loss와 `keras_model.compile()`에 전달된 모든 항목이 포함됩니다.
* `monitor` 및 `mode` 속성으로 정의된 "최적" 트레이닝 step에 연결된 run의 summary 메트릭을 설정합니다. 기본값은 `val_loss`가 가장 작은 에포크입니다. `WandbCallback`는 기본적으로 가장 좋은 `epoch`에 해당하는 모델을 저장합니다.
* 선택적으로 그라디언트 및 파라미터 히스토그램을 로깅합니다.
* 선택적으로 wandb에서 시각화할 수 있도록 트레이닝 및 검증 데이터를 저장합니다.

<div id="wandbcallback-reference">
  ### `WandbCallback` 레퍼런스
</div>

| 인자                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `monitor`                  | (str) 모니터링할 metric 이름입니다. 기본값은 `val_loss`입니다.                                                                                                                                                                                                                                                                                                                                                                                                          |
| `mode`                     | (str) `{`auto`, `min`, `max`}` 중 하나입니다. `min` - monitor 값이 최소일 때 모델을 저장합니다 `max` - monitor 값이 최대일 때 모델을 저장합니다 `auto` - 모델을 언제 저장할지 자동으로 추정합니다(기본값).                                                                                                                                                                                                                                                                                                    |
| `save_model`               | True - monitor가 이전 모든 에포크보다 향상되면 모델을 저장합니다. False - 모델을 저장하지 않습니다                                                                                                                                                                                                                                                                                                                                                                                      |
| `save_graph`               | (boolean) True이면 모델 그래프를 wandb에 저장합니다(기본값: True).                                                                                                                                                                                                                                                                                                                                                                                                      |
| `save_weights_only`        | (boolean) True이면 모델 가중치만 저장합니다(`model.save_weights(filepath)`). 그렇지 않으면 전체 모델을 저장합니다).                                                                                                                                                                                                                                                                                                                                                                 |
| `log_weights`              | (boolean) True이면 모델 레이어 가중치의 히스토그램을 저장합니다.                                                                                                                                                                                                                                                                                                                                                                                                             |
| `log_gradients`            | (boolean) True이면 트레이닝 그라디언트의 히스토그램을 기록합니다.                                                                                                                                                                                                                                                                                                                                                                                                             |
| `training_data`            | (tuple) `model.fit`에 전달한 것과 같은 형식의 `(X,y)`입니다. 그라디언트를 계산하는 데 필요하며, `log_gradients`가 `True`인 경우 필수입니다.                                                                                                                                                                                                                                                                                                                                                  |
| `validation_data`          | (tuple) `model.fit`에 전달하는 `(X,y)`와 동일한 형식입니다. wandb가 시각화할 데이터 세트입니다. 이 필드를 설정하면 매 에포크마다 wandb가 소수의 예측을 수행하고, 결과를 나중에 시각화할 수 있도록 저장합니다.                                                                                                                                                                                                                                                                                                                 |
| `generator`                | (generator) wandb가 시각화할 수 있도록 검증 데이터를 반환하는 제너레이터입니다. 이 제너레이터는 `(X,y)` 튜플을 반환해야 합니다. wandb가 특정 데이터 예제를 시각화하려면 `validate_data` 또는 generator를 설정해야 합니다.                                                                                                                                                                                                                                                                                                   |
| `validation_steps`         | (int) `validation_data`가 generator인 경우, 전체 검증 세트에 대해 generator를 몇 step 동안 실행할지 지정합니다.                                                                                                                                                                                                                                                                                                                                                                  |
| `labels`                   | (목록) wandb로 데이터를 시각화하는 경우, 여러 클래스 분류기를 만들 때 이 레이블 목록은 숫자 출력을 이해하기 쉬운 문자열로 변환합니다. 이진 분류기의 경우 \[`label for false`, `label for true`]처럼 두 개의 레이블이 담긴 목록을 전달할 수 있습니다. `validate_data`와 `generator`가 모두 false이면 아무 일도 하지 않습니다.                                                                                                                                                                                                                              |
| `predictions`              | (int) 각 에포크에서 시각화를 위해 생성할 예측 수입니다. 최댓값은 100입니다.                                                                                                                                                                                                                                                                                                                                                                                                        |
| `input_type`               | (string) 시각화를 돕기 위한 모델 입력의 유형입니다. 가능한 값은 다음 중 하나입니다: (`image`, `images`, `segmentation_mask`).                                                                                                                                                                                                                                                                                                                                                         |
| `output_type`              | (string) 시각화를 돕기 위한 모델 출력 유형입니다. 다음 중 하나여야 합니다: (`image`, `images`, `segmentation_mask`).                                                                                                                                                                                                                                                                                                                                                              |
| `log_evaluation`           | (boolean) True이면 각 에포크마다 검증 데이터와 모델 예측이 포함된 Table을 저장합니다. 자세한 내용은 `validation_indexes`, `validation_row_processor`, `output_row_processor`를 참조하세요.                                                                                                                                                                                                                                                                                                     |
| `class_colors`             | (\[float, float, float]) 입력 또는 출력이 세그멘테이션 마스크인 경우, 각 클래스의 RGB 튜플(범위 0\~1)을 담은 배열입니다.                                                                                                                                                                                                                                                                                                                                                                   |
| `log_batch_frequency`      | (integer) None이면 콜백이 에포크마다 기록합니다. 정수로 설정하면 콜백이 `log_batch_frequency`배치마다 트레이닝 메트릭을 기록합니다.                                                                                                                                                                                                                                                                                                                                                              |
| `log_best_prefix`          | (string) None이면 추가 summary 메트릭을 저장하지 않습니다. 문자열로 설정하면 접두사를 모니터링 중인 메트릭과 에포크 앞에 붙여 결과를 summary 메트릭으로 저장합니다.                                                                                                                                                                                                                                                                                                                                              |
| `validation_indexes`       | (\[wandb.data\_types.\_TableLinkMixin]) 각 검증 예제에 연결할 인덱스 키의 순서 있는 목록입니다. `log_evaluation`이 True이고 `validation_indexes`를 제공하면 검증 데이터의 Table을 생성하지 않습니다. 대신 각 예측을 `TableLinkMixin`이 가리키는 행에 연결합니다. 행 키 목록을 획득하려면 `Table.get_index() `를 사용하세요.                                                                                                                                                                                                            |
| `validation_row_processor` | (Callable) 검증 데이터에 적용할 함수로, 일반적으로 데이터를 시각화하는 데 사용됩니다. 이 함수는 `ndx`(int)와 `row`(`dict`)를 인자로 받습니다. 모델에 입력이 하나뿐이면 `row["input"]`에 해당 행의 입력 데이터가 들어 있습니다. 그렇지 않으면 입력 슬롯의 이름이 들어 있습니다. `fit` 함수가 단일 타깃을 받으면 `row["target"]`에 해당 행의 타깃 데이터가 들어 있습니다. 그렇지 않으면 출력 슬롯의 이름이 들어 있습니다. 예를 들어 입력 데이터가 단일 배열인 경우, 데이터를 Image로 시각화하려면 프로세서로 `lambda ndx, row: {"img": wandb.Image(row["input"])}`를 지정하세요. `log_evaluation`이 False이거나 `validation_indexes`가 있으면 무시됩니다. |
| `output_row_processor`     | (Callable) `validation_row_processor`와 동일하지만 모델의 출력에 적용됩니다. `row["output"]`에는 모델 출력 결과가 들어 있습니다.                                                                                                                                                                                                                                                                                                                                                       |
| `infer_missing_processors` | (Boolean) `validation_row_processor` 및 `output_row_processor`가 없을 때 이를 추론할지 확인합니다. 기본값은 True입니다. `labels`를 제공하면 W\&B는 적절한 경우 분류 유형 프로세서를 추론합니다.                                                                                                                                                                                                                                                                                                        |
| `log_evaluation_frequency` | (int) 평가 결과를 얼마나 자주 log할지 확인하는 값입니다. 기본값은 트레이닝이 끝날 때만 log하도록 `0`으로 설정됩니다. 매 에포크마다 log하려면 1, 한 에포크씩 건너뛰며 log하려면 2로 설정하는 식입니다. `log_evaluation`이 False이면 적용되지 않습니다.                                                                                                                                                                                                                                                                                      |

<div id="frequently-asked-questions">
  ## 자주 묻는 질문
</div>

<div id="how-do-i-use-keras-multiprocessing-with-wandb">
  ### `wandb`에서 `Keras` 멀티프로세싱을 어떻게 사용하나요?
</div>

`use_multiprocessing=True`로 설정하면 다음 오류가 발생할 수 있습니다:

```python theme={null}
Error("You must call wandb.init() before wandb.config.batch_size")
```

이를 우회하려면 다음과 같이 하세요:

1. `Sequence` 클래스 생성 시 `wandb.init(group='...')`를 추가합니다.
2. `main`에서 `if __name__ == "__main__":`를 사용하고 있는지 확인한 다음, 나머지 스크립트 로직을 그 안에 넣으세요.
