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

> CommError, CUDA 메모리 부족, wandb 에이전트 실패를 포함한 일반적인 스윕 문제를 해결합니다.

# 스윕 문제 해결

이 페이지에서는 W\&B 스윕를 실행할 때 발생할 수 있는 일반적인 오류 메시지를 진단하고 해결하는 방법을 안내합니다. 다음 섹션에서는 각 오류가 무엇인지, 왜 발생하는지, 그리고 해결 방법을 설명합니다.

<div id="commerror-run-does-not-exist-and-error-error-uploading">
  ## `CommError, Run does not exist` 및 `ERROR Error uploading`
</div>

W\&B에서 이 두 오류 메시지를 모두 반환하면 W\&B run ID가 설정되어 있을 수 있습니다. 예를 들어 Jupyter Notebook이나 Python 스크립트 어딘가에 다음과 비슷한 코드 스니펫이 정의되어 있을 수 있습니다:

```python theme={null}
wandb.init(id="some-string")
```

W\&B는 Sweeps가 생성하는 run에 대해 무작위의 고유 ID를 자동으로 생성하므로 Sweeps에서는 run ID를 설정할 수 없습니다.

W\&B run ID는 프로젝트 내에서 고유해야 합니다.

테이블과 그래프에 표시되는 맞춤형 이름을 설정하려면 W\&B를 초기화할 때 `name` 파라미터에 이름을 전달하세요. 예를 들면 다음과 같습니다:

```python theme={null}
wandb.init(name="a helpful readable run name")
```

`wandb.init()`에서 `id` 인수를 제거하면 스윕이 자체적으로 고유한 run ID를 부여할 수 있게 되고, 업로드 오류도 발생하지 않게 됩니다.

<div id="cuda-out-of-memory">
  ## `CUDA out of memory`
</div>

이 오류 메시지가 표시되면 코드를 프로세스 기반으로 실행하도록 리팩터링하세요. 각 trial을 별도 프로세스에서 실행하면 W\&B가 run 사이에 GPU 메모리를 해제합니다.

코드를 리팩터링하려면 다음 단계를 수행하세요:

1. 코드를 `train.py`라는 Python 스크립트로 다시 작성하세요. 트레이닝 스크립트 이름(`train.py`)을 YAML 스윕 설정 파일(`config.yaml`, 이 예제에서는)에 추가하세요:

   ```yaml theme={null}
   program: train.py
   method: bayes
   metric:
     name: validation_loss
     goal: maximize
   parameters:
     learning_rate:
       min: 0.0001
       max: 0.1
     optimizer:
       values: ["adam", "sgd"]
   ```

2. `train.py` Python 스크립트에 다음 내용을 추가하세요:

   ```python theme={null}
   if __name__ == "__main__":
       train()
   ```

3. CLI에서 `wandb sweep`으로 스윕을 초기화하세요:

   ```bash theme={null}
   wandb sweep config.yaml
   ```

4. W\&B가 반환한 스윕 ID를 확인하세요. Python SDK([`wandb.agent()`](/ko/models/ref/python/functions/agent)) 대신 CLI에서 [`wandb agent`](/ko/models/ref/cli/wandb-agent)를 사용해 스윕 작업을 시작하세요. 다음 코드 스니펫의 `[SWEEP-ID]`를 이전 단계에서 W\&B가 반환한 스윕 ID로 바꾸세요:

   ```bash theme={null}
   wandb agent [SWEEP-ID]
   ```

트레이닝 코드가 CLI 에이전트 아래에서 스크립트로 실행되면 각 trial이 별도 프로세스에서 실행되므로, W\&B가 run 사이에 GPU 메모리를 해제합니다.

<div id="anaconda-400-error">
  ## `anaconda 400 error`
</div>

다음 오류는 일반적으로 최적화하려는 메트릭을 로깅하지 않았을 때 발생합니다:

```text theme={null}
wandb: ERROR Error while calling W&B API: anaconda 400 error: 
{"code": 400, "message": "TypeError: bad operand type for unary -: 'NoneType'"}
```

YAML 파일 또는 중첩 딕셔너리에서 최적화할 `metric` 키를 지정합니다. 이 메트릭을 `wandb.Run.log()`로 로깅해야 합니다. 또한 Python 스크립트나 Jupyter Notebook에서 스윕이 최적화하도록 정의한 메트릭 이름과 *정확히* 일치하는 이름을 사용해야 합니다. 설정 파일에 대한 자세한 내용은 [스윕 설정 정의](/ko/models/sweeps/define-sweep-configuration/)를 참조하세요.
