실험을 실행하면 콘솔에 다양한 메시지가 출력되는 것을 확인할 수 있습니다. W&B는 콘솔 로그를 수집하여 W&B App에 표시합니다. 이러한 메시지를 사용하여 실험의 동작을 디버깅하고 모니터링하십시오.
W&B App에서 run의 콘솔 로그를 확인하려면 다음을 수행하세요:
- W&B App에서 프로젝트로 이동합니다.
- Runs 테이블에서 run을 하나 선택합니다.
- 프로젝트 사이드바에서 Logs 탭을 클릭합니다.
W&B는 run당 최대 100,000줄의 로그를 저장합니다. W&B App에서는 한 번에 최대 10,000줄의 로그만 표시됩니다. 저장된 모든 로그 줄을 보려면 스크롤하여 더 이전 로그를 불러와 확인하세요.
W&B는 여러 유형의 콘솔 로그를 수집합니다. 정보 메시지, 경고, 오류가 있으며, 각 로그의 심각도를 나타내는 접두사가 함께 표시됩니다.
정보 메시지는 run의 진행 상황과 상태를 알려줍니다. 일반적으로 앞에 wandb:가 붙습니다.
wandb: Starting Run: abc123
wandb: Run data is saved locally in ./wandb/run-20240125_120000-abc123
실행을 중단시키지 않지만 잠재적인 문제를 나타내는 경고는 WARNING:로 시작합니다.
WARNING Found .wandb file, not streaming tensorboard metrics.
WARNING These runs were logged with a previous version of wandb.
심각한 문제에 대한 오류 메시지 앞에는 ERROR:가 붙습니다. 이러한 메시지는 run이 정상적으로 완료되는 것을 방해할 수 있는 문제를 나타냅니다.
ERROR Unable to save notebook session history.
ERROR Failed to save notebook.
코드에서 wandb.Settings 객체를 wandb.init()에 전달하여 W&B가 콘솔 로그를 처리하는 방식을 구성할 수 있습니다. wandb.Settings 내에서 다음 매개변수를 설정해 콘솔 로그 동작을 제어할 수 있습니다:
show_errors: True로 설정하면 오류 메시지가 W&B 앱에 표시됩니다. False로 설정하면 오류 메시지가 표시되지 않습니다.
silent: True로 설정하면 모든 W&B 콘솔 출력이 나타나지 않습니다. 콘솔 출력을 최소화하고 싶은 프로덕션 환경에서 유용합니다.
show_warnings: True로 설정하면 경고 메시지가 W&B 앱에 표시됩니다. False로 설정하면 경고 메시지가 표시되지 않습니다.
show_info: True로 설정하면 정보 메시지가 W&B 앱에 표시됩니다. False로 설정하면 정보 메시지가 표시되지 않습니다.
다음 예시는 이러한 설정을 구성하는 방법을 보여줍니다:
import wandb
settings = wandb.Settings(
show_errors=True, # W&B App에 오류 메시지 표시
silent=False, # 모든 W&B 콘솔 출력 비활성화
show_warnings=True # W&B App에 경고 메시지 표시
)
with wandb.init(settings=settings) as run:
# 트레이닝 코드를 여기에 작성하세요
run.log({"accuracy": 0.95})
W&B는 애플리케이션의 콘솔 로그를 캡처하지만, 사용자의 로깅 설정을 방해하지는 않습니다. Python에 기본 내장된 print() 함수나 logging 모듈을 사용해 메시지를 로깅할 수 있습니다.
import wandb
with wandb.init(project="my-project") as run:
for i in range(100, 1000, 100):
# W&B에 로그를 기록하고 콘솔에 출력합니다
run.log({"epoch": i, "loss": 0.1 * i})
print(f"epoch: {i} loss: {0.1 * i}")
콘솔 로그는 다음과 유사하게 출력됩니다:
1 epoch: 100 loss: 1.3191105127334595
2 epoch: 200 loss: 0.8664389848709106
3 epoch: 300 loss: 0.6157898902893066
4 epoch: 400 loss: 0.4961796700954437
5 epoch: 500 loss: 0.42592573165893555
6 epoch: 600 loss: 0.3771176040172577
7 epoch: 700 loss: 0.3393910825252533
8 epoch: 800 loss: 0.3082585036754608
9 epoch: 900 loss: 0.28154927492141724
타임스탬프는 각 콘솔 로그 항목에 자동으로 추가됩니다. 이를 통해 각 로그 메시지가 언제 생성되었는지 추적할 수 있습니다.
콘솔 로그에서 타임스탬프 표시 여부를 켜거나 끌 수 있습니다. 콘솔 페이지에서 왼쪽 상단에 있는 Timestamp visible 드롭다운을 선택합니다. 여기에서 타임스탬프를 표시하거나 숨길지를 선택할 수 있습니다.
콘솔 로그 페이지 상단의 검색창을 사용해 키워드로 로그를 필터링하세요. 특정 용어, 레이블 또는 오류 메시지를 검색할 수 있습니다.
콘솔 로그 페이지 상단의 UI 검색창에서 wandb.Settings의 x_label 인자로 전달한 레이블을 기준으로 콘솔 로그를 필터링할 수 있습니다.
import wandb
# 기본 노드에서 run 초기화
with wandb.init(
entity="entity",
project="project",
settings=wandb.Settings(
x_label="custom_label" # (선택 사항) 로그 필터링을 위한 커스텀 레이블
)
) as run:
# 여기에 코드 작성
W&B App에서 run의 콘솔 로그를 다운로드하려면 다음을 수행하세요:
- W&B App에서 해당 프로젝트로 이동합니다.
- Runs 테이블에서 run을 하나 선택합니다.
- 프로젝트 사이드바에서 Logs 탭을 클릭합니다.
- 콘솔 로그 페이지 오른쪽 상단의 다운로드 버튼을 클릭합니다.
W&B App에서 run의 콘솔 로그를 복사하려면 다음을 수행하세요:
- W&B App에서 프로젝트로 이동합니다.
- Runs 테이블에서 하나의 run을 선택합니다.
- 프로젝트 사이드바에서 Logs 탭을 클릭합니다.
- 콘솔 로그 페이지 오른쪽 상단의 복사 버튼을 클릭합니다.