wandb.Run.log()를 사용하여 데이터를 로그 할 때마다 하나의 통합된 dictionary에 저장합니다. 스크립트에서 로그 된 데이터는 로컬 머신의 wandb라는 디렉토리에 저장된 후, W&B 클라우드 또는 private server로 동기화됩니다.
키-값 쌍은 각 step에 대해 동일한 값을 전달하는 경우에만 하나의 통합된 dictionary에 저장됩니다. 만약
step에 대해 다른 값을 로그 하면 W&B는 수집된 모든 키와 값을 메모리에 기록합니다.wandb.Run.log()를 호출할 때마다 새로운 step이 생성됩니다. W&B는 차트와 패널을 생성할 때 step을 기본 x-축으로 사용합니다. 선택적으로 커스텀 x-축을 생성하여 사용하거나 커스텀 요약 메트릭을 캡처할 수 있습니다. 자세한 내용은 Customize log axes를 참조하세요.
자동 로그 데이터
W&B는 W&B Experiments 진행 중에 다음 정보를 자동으로 로그 합니다:- System metrics: CPU 및 GPU 사용률, 네트워크 등. GPU의 경우
nvidia-smi를 통해 가져옵니다. - 커맨드라인: stdout 및 stderr가 캡처되어 run 페이지의 로그 탭에 표시됩니다.
- Git commit: 최신 git commit을 가져와 run 페이지의 Overview 탭에서 확인할 수 있으며, 커밋되지 않은 변경 사항이 있는 경우
diff.patch파일도 함께 확인할 수 있습니다. - Dependencies:
requirements.txt파일이 업로드되어 run 페이지의 파일 탭에 표시되며, 해당 run의wandb디렉토리에 저장한 모든 파일도 함께 표시됩니다.
특정 W&B API 호출로 어떤 데이터가 로그 되나요?
W&B를 사용하면 로그 하려는 대상을 정확하게 결정할 수 있습니다. 다음은 일반적으로 로그 되는 오브젝트 목록입니다:- Datasets: 이미지나 다른 데이터셋 샘플이 W&B로 스트리밍되도록 하려면 명시적으로 로그 해야 합니다.
- Plots: 차트를 추적하려면
wandb.Run.log()와 함께wandb.plot()을 사용하세요. 자세한 내용은 Log Plots를 참조하세요. - Tables: W&B에서 데이터를 시각화하고 쿼리 하려면
wandb.Table을 사용하세요. 자세한 내용은 Log Tables를 참조하세요. - PyTorch gradients: UI에서 가중치의 그레이디언트를 히스토그램으로 보려면
wandb.Run.watch(model)를 추가하세요. - 설정 정보: 하이퍼파라미터, 데이터셋 링크 또는 사용 중인 아키텍처 이름을 설정 파라미터로 로그 하려면
wandb.init(config=your_config_dictionary)와 같이 전달하세요. - Metrics: 모델의 메트릭을 보려면
wandb.Run.log()를 사용하세요. 트레이닝 루프 내에서 accuracy나 loss와 같은 메트릭을 로그 하면 UI에서 실시간으로 업데이트되는 그래프를 볼 수 있습니다.
메트릭 명명 규칙
GraphQL의 제한 사항으로 인해 W&B의 메트릭 이름은 특정 명명 규칙을 따라야 합니다:- Allowed characters: Letters (A-Z, a-z), digits (0-9), and underscores (_)
- Starting character: Names must start with a letter or underscore
- Pattern: Metric names should match
/^[_a-zA-Z][_a-zA-Z0-9]*$/
일반적인 워크플로우
-
최고 accuracy 비교: 여러 Runs에 걸쳐 메트릭의 최고 값을 비교하려면 해당 메트릭의 summary 값을 설정하세요. 기본적으로 summary는 각 키에 대해 마지막으로 로그 된 값으로 설정됩니다. 이는 UI의 테이블에서 유용하며, 최종 accuracy 대신 최고 accuracy를 기준으로 테이블이나 바 차트에서 Runs를 정렬, 필터링 및 비교하는 데 도움이 됩니다. 예:
wandb.run.summary["best_accuracy"] = best_accuracy -
하나의 차트에서 여러 메트릭 보기: 동일한 호출에서 여러 메트릭을 로그 하세요. 예:
이후 UI에서 두 메트릭을 모두 플롯 할 수 있습니다.
-
x-축 커스터마이징: 동일한 로그 호출에 커스텀 x-축을 추가하여 W&B 대시보드에서 다른 축을 기준으로 메트릭을 시각화하세요. 예:
지정된 메트릭에 대한 기본 x-축을 설정하려면 Run.define_metric()을 사용하세요.
-
리치 미디어 및 차트 로그:
wandb.Run.log()는 이미지 및 비디오와 같은 미디어부터 Tables 및 차트까지 광범위한 데이터 유형의 로깅을 지원합니다.