W&B Python SDK를 사용하여 메트릭, 미디어 또는 사용자 정의 객체의 딕셔너리를 step 단위로 로깅합니다. W&B는 각 step마다 key-value 쌍을 수집하고,Documentation Index
Fetch the complete documentation index at: https://translations.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
wandb.Run.log()으로 데이터를 로깅할 때마다 이를 하나의 통합 딕셔너리에 저장합니다. 스크립트에서 로깅된 데이터는 먼저 로컬 머신의 wandb 디렉터리에 저장된 뒤, W&B 클라우드 또는 private server로 동기화됩니다.
key-value 쌍은 각 step에 대해 동일한 값을 전달한 경우에만 하나의 통합 딕셔너리에 저장됩니다.
step에 서로 다른 값을 로깅하면, W&B는 수집된 모든 key와 value를 메모리에 기록합니다.wandb.Run.log()을 호출할 때마다 새로운 step이 됩니다. W&B는 차트와 패널을 생성할 때 step을 기본 x축으로 사용합니다. 필요에 따라 사용자 정의 x축을 생성해 사용할 수 있고, 사용자 정의 요약 메트릭을 수집할 수도 있습니다. 자세한 내용은 Customize log axes를 참고하세요.
자동으로 로깅되는 데이터
- 시스템 메트릭: CPU 및 GPU 사용량, 네트워크 등. GPU 메트릭은
nvidia-smi로 가져옵니다. - 명령줄: stdout과 stderr가 수집되어 실행 페이지의 Logs 탭에 표시됩니다.
- Git 커밋: 최신 git 커밋을 가져와 실행 페이지의 Overview 탭에 표시하며, 커밋되지 않은 변경 사항이 있는 경우
diff.patch파일도 함께 표시합니다. - Dependencies:
requirements.txt파일이 업로드되어 실행 페이지의 Files 탭에 표시되며, 해당 실행을 위해wandb디렉터리에 저장하는 모든 파일도 함께 표시됩니다.
특정 W&B API 호출에서 어떤 데이터가 기록되나요?
- 데이터셋: 이미지나 기타 데이터셋 샘플을 W&B로 스트리밍하려면 명시적으로 로그해야 합니다.
- 플롯(Plots):
wandb.Run.log()와 함께wandb.plot()을 사용해 차트를 추적하세요. 자세한 내용은 플롯 로깅을 참고하세요. - 테이블(Tables):
wandb.Table을 사용해 W&B에서 시각화하고 조회할 데이터를 로그하세요. 자세한 내용은 테이블 로깅을 참고하세요. - PyTorch 그래디언트:
wandb.Run.watch(model)을 추가해 가중치의 그래디언트를 UI에서 히스토그램으로 확인할 수 있습니다. - 설정 정보(Configuration information): 하이퍼파라미터, 데이터셋 링크, 사용 중인 아키텍처 이름 등을 설정(config) 파라미터로 로그하세요. 다음과 같이 전달합니다:
wandb.init(config=your_config_dictionary). - 메트릭(Metrics):
wandb.Run.log()을 사용해 모델에서 나오는 메트릭을 기록하세요. 정확도, 손실(loss) 등의 메트릭을 학습 루프 내부에서 로그하면 UI에서 실시간으로 업데이트되는 그래프를 볼 수 있습니다.
메트릭 이름 제약 조건
- 허용 문자: 알파벳(A–Z, a–z), 숫자(0–9), 밑줄 문자(_)
- 첫 글자: 이름은 알파벳 또는 밑줄로 시작해야 합니다
- 패턴: 메트릭 이름은
/^[_a-zA-Z][_a-zA-Z0-9]*$/패턴과 일치해야 합니다
일반적인 워크플로
-
최고 정확도 비교: 여러 실행 간에 특정 메트릭의 최댓값을 비교하려면 해당 메트릭의 summary 값을 설정합니다. 기본적으로 summary는 각 키에 대해 마지막으로 로깅한 값으로 설정됩니다. 이는 UI의 테이블에서 summary 메트릭을 기준으로 실행을 정렬하고 필터링하여, 최종 정확도 대신 최고 정확도를 기준으로 테이블이나 막대 차트에서 실행을 비교할 때 유용합니다. 예를 들어:
wandb.run.summary["best_accuracy"] = best_accuracy -
하나의 차트에 여러 메트릭 보기: 한 번의 호출에서 여러 메트릭을 로깅합니다. 예를 들어:
그런 다음 UI에서 두 메트릭을 모두 그래프로 그릴 수 있습니다.
-
x축 사용자 정의: 동일한 로그 호출에 사용자 정의 x축을 추가하여, W&B 대시보드에서 다른 축을 기준으로 메트릭을 시각화합니다. 예를 들어:
특정 메트릭에 대한 기본 x축을 설정하려면 Run.define_metric()을 사용하세요.
-
리치 미디어 및 차트 로깅:
wandb.Run.log()는 이미지와 비디오 같은 미디어부터 테이블과 차트까지 다양한 데이터 타입의 로깅을 지원합니다.