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

CommError, Run does not existERROR Error uploading

W&B에서 이 두 오류 메시지를 모두 반환하면 W&B run ID가 설정되어 있을 수 있습니다. 예를 들어 Jupyter Notebook이나 Python 스크립트 어딘가에 다음과 비슷한 코드 스니펫이 정의되어 있을 수 있습니다:
W&B는 Sweeps가 생성하는 run에 대해 무작위의 고유 ID를 자동으로 생성하므로 Sweeps에서는 run ID를 설정할 수 없습니다. W&B run ID는 프로젝트 내에서 고유해야 합니다. 테이블과 그래프에 표시되는 맞춤형 이름을 설정하려면 W&B를 초기화할 때 name 파라미터에 이름을 전달하세요. 예를 들면 다음과 같습니다:
wandb.init()에서 id 인수를 제거하면 스윕이 자체적으로 고유한 run ID를 부여할 수 있게 되고, 업로드 오류도 발생하지 않게 됩니다.

CUDA out of memory

이 오류 메시지가 표시되면 코드를 프로세스 기반으로 실행하도록 리팩터링하세요. 각 trial을 별도 프로세스에서 실행하면 W&B가 run 사이에 GPU 메모리를 해제합니다. 코드를 리팩터링하려면 다음 단계를 수행하세요:
  1. 코드를 train.py라는 Python 스크립트로 다시 작성하세요. 트레이닝 스크립트 이름(train.py)을 YAML 스윕 설정 파일(config.yaml, 이 예제에서는)에 추가하세요:
  2. train.py Python 스크립트에 다음 내용을 추가하세요:
  3. CLI에서 wandb sweep으로 스윕을 초기화하세요:
  4. W&B가 반환한 스윕 ID를 확인하세요. Python SDK(wandb.agent()) 대신 CLI에서 wandb agent를 사용해 스윕 작업을 시작하세요. 다음 코드 스니펫의 [SWEEP-ID]를 이전 단계에서 W&B가 반환한 스윕 ID로 바꾸세요:
트레이닝 코드가 CLI 에이전트 아래에서 스크립트로 실행되면 각 trial이 별도 프로세스에서 실행되므로, W&B가 run 사이에 GPU 메모리를 해제합니다.

anaconda 400 error

다음 오류는 일반적으로 최적화하려는 메트릭을 로깅하지 않았을 때 발생합니다:
YAML 파일 또는 중첩 딕셔너리에서 최적화할 metric 키를 지정합니다. 이 메트릭을 wandb.Run.log()로 로깅해야 합니다. 또한 Python 스크립트나 Jupyter Notebook에서 스윕이 최적화하도록 정의한 메트릭 이름과 정확히 일치하는 이름을 사용해야 합니다. 설정 파일에 대한 자세한 내용은 스윕 설정 정의를 참조하세요.