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

> Skorch와 W&B를 통합해 scikit-learn과 호환되는 PyTorch 모델의 트레이닝 메트릭과 하이퍼파라미터를 로깅합니다.

# Skorch

이 페이지에서는 맞춤형 로깅 코드를 작성하지 않고도 Skorch 모델 트레이닝을 추적할 수 있도록 W\&B를 [Skorch](https://skorch.readthedocs.io/)와 함께 사용하는 방법을 설명합니다. W\&B를 Skorch와 함께 사용하면 각 에포크 후 최고 성능의 모델은 물론, 모든 모델 성능 메트릭, 모델 토폴로지, 컴퓨팅 리소스도 자동으로 로깅할 수 있습니다. `wandb_run.dir`에 저장된 모든 파일은 자동으로 W\&B에 로깅됩니다.

자세한 내용은 이 [예시 run](https://app.wandb.ai/borisd13/skorch/runs/s20or4ct?workspace=user-borisd13)을 참조하세요.

<div id="parameters">
  ## 매개변수
</div>

다음 표에는 `WandbLogger` callback이 받는 매개변수가 나와 있습니다.

| Parameter      | Type                                    | Description                                                                                          |
| :------------- | :-------------------------------------- | :--------------------------------------------------------------------------------------------------- |
| `wandb_run`    | `wandb.wandb_run`. Run                  | 데이터를 로깅하는 데 사용하는 W\&B run입니다.                                                                        |
| `save_model`   | `bool` (default=`True`)                 | 최고 성능 모델의 checkpoint를 저장하고 W\&B run에 업로드할지 여부입니다.                                                    |
| `keys_ignored` | `str` or list of `str` (default=`None`) | TensorBoard에 로깅하지 않을 키 또는 키 목록입니다. 사용자가 지정한 키 외에도 W\&B는 기본적으로 `event_`로 시작하거나 `_best`로 끝나는 키를 무시합니다. |

<div id="example-code">
  ## 예시 코드
</div>

다음 예시는 Skorch와 함께 `WandbLogger`를 사용하는 엔드투엔드 사용 예시를 보여줍니다:

* [Colab](https://colab.research.google.com/drive/1Bo8SqN1wNPMKv5Bn9NjwGecBxzFlaNZn?usp=sharing): 인테그레이션을 사용해 볼 수 있는 단순한 데모입니다.
* [단계별 가이드](https://app.wandb.ai/cayush/uncategorized/reports/Automate-Kaggle-model-training-with-Skorch-and-W%26B--Vmlldzo4NTQ1NQ): Skorch 모델 성능 추적을 위한 워크스루입니다.

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

```python theme={null}
import wandb
from skorch.callbacks import WandbLogger

# wandb run 생성
wandb_run = wandb.init()

# 하이퍼파라미터 로그 (선택)
wandb_run.config.update({"learning rate": 1e-3, "batch size": 32})

net = NeuralNet(..., callbacks=[WandbLogger(wandb_run)])
net.fit(X, y)
```

<div id="method-reference">
  ## 방법 레퍼런스
</div>

다음 표에는 `WandbLogger`가 제공하는 callback 방법과 Skorch가 각 방법을 호출하는 시점이 나와 있습니다.

| 방법                                                  | 설명                                                |
| :-------------------------------------------------- | :------------------------------------------------ |
| `initialize`()                                      | callback의 초기 상태를 (재)설정합니다.                        |
| `on_batch_begin`(net\[, X, y, training])            | 각 배치 시작 시 호출됩니다.                                  |
| `on_batch_end`(net\[, X, y, training])              | 각 배치 종료 시 호출됩니다.                                  |
| `on_epoch_begin`(net\[, dataset\_train, …])         | 각 에포크 시작 시 호출됩니다.                                 |
| `on_epoch_end`(net, \*\*kwargs)                     | 마지막 이력 step의 값을 로깅하고 최고 성능 모델을 저장합니다              |
| `on_grad_computed`(net, named\_parameters\[, X, …]) | 그라디언트가 계산된 후 업데이트 step이 수행되기 전에 각 배치마다 한 번 호출됩니다. |
| `on_train_begin`(net, \*\*kwargs)                   | 모델 토폴로지를 로깅하고 그라디언트를 위한 hook을 추가합니다               |
| `on_train_end`(net\[, X, y])                        | 트레이닝 종료 시 호출됩니다.                                  |
