메인 콘텐츠로 건너뛰기
Colab에서 실행해 보기
W&B 멀티 테넌트 SaaS에서는 내장 TensorBoard를 지원합니다.
TensorBoard 로그를 클라우드에 업로드하고, 동료와 동급생과 결과를 빠르게 공유하며, 모든 분석을 하나의 중앙 위치에 모아 두세요.
TensorBoard integration code

시작하기

import wandb

# `sync_tensorboard=True`로 wandb 실행 시작
wandb.init(project="my-project", sync_tensorboard=True) as run:
  # TensorBoard를 사용하는 학습 코드
  ...

TensorBoard 통합 실행 예시를 확인하세요. 실행이 완료되면 W&B에서 TensorBoard 이벤트 파일에 액세스할 수 있으며, 시스템의 CPU·GPU 사용량, git 상태, 실행에 사용된 터미널 명령 등과 같은 추가적인 유용한 정보와 함께 메트릭을 W&B 네이티브 차트에서 시각화할 수 있습니다.
W&B는 모든 버전의 TensorFlow에서 TensorBoard를 지원합니다. 또한 PyTorch에서 TensorBoard 1.14 이상과 TensorBoardX도 지원합니다.

자주 묻는 질문

TensorBoard에 기록되지 않는 지표를 W&B에 어떻게 기록할 수 있나요?

TensorBoard에 기록되지 않는 추가 커스텀 지표를 기록해야 하는 경우, 코드에서 wandb.Run.log()를 호출하면 됩니다: run.log({"custom": 0.8}) TensorBoard를 동기화할 때는 run.log()의 step 인자를 설정할 수 없습니다. 다른 step 값을 사용하고 싶다면, 다음과 같이 step 지표와 함께 기록하면 됩니다: run.log({"custom": 0.8, "global_step": global_step})

wandb와 함께 TensorBoard를 사용할 때는 어떻게 설정하나요?

TensorBoard 패치 방식을 더 세밀하게 제어하고 싶다면, wandb.initsync_tensorboard=True를 전달하는 대신 wandb.tensorboard.patch를 호출하면 됩니다.
import wandb

wandb.tensorboard.patch(root_logdir="<logging_directory>")
run = wandb.init()

# wandb 실행을 완료하여 tensorboard 로그를 W&B에 업로드합니다 (Notebook에서 실행 중인 경우)
run.finish()
이 메서드에 tensorboard_x=False를 전달하면 기본 TensorBoard가 패치되도록 보장할 수 있습니다. TensorBoard > 1.14 버전을 PyTorch와 함께 사용하는 경우에는 pytorch=True를 전달해 해당 TensorBoard가 패치되도록 할 수 있습니다. 이 두 옵션은 가져온 라이브러리 버전에 따라 자동으로 적절한 기본값을 사용합니다. 기본적으로 tfevents 파일과 모든 .pbtxt 파일도 동기화합니다. 이를 통해 W&B가 대신 TensorBoard 인스턴스를 실행할 수 있습니다. 실행 페이지에서 TensorBoard 탭을 확인할 수 있습니다. 이 동작은 wandb.tensorboard.patchsave=False를 전달하여 비활성화할 수 있습니다.
import wandb

run = wandb.init()
wandb.tensorboard.patch(save=False, tensorboard_x=True)

# 노트북에서 실행 중인 경우, wandb 실행을 종료하여 tensorboard 로그를 W&B에 업로드하세요
run.finish()
tf.summary.create_file_writer를 호출하거나 torch.utils.tensorboard를 통해 SummaryWriter를 생성하기 전에 반드시 wandb.init() 또는 wandb.tensorboard.patch 중 하나를 먼저 호출해야 합니다.

기존 TensorBoard 실행을 어떻게 동기화하나요?

로컬에 저장된 기존 tfevents 파일이 있고 이를 W&B로 가져오고 싶다면, tfevents 파일을 포함하는 로컬 디렉터리인 log_dir를 인자로 하여 wandb sync log_dir 명령을 실행하면 됩니다.

Google Colab 또는 Jupyter에서 TensorBoard를 사용하려면 어떻게 하나요?

Jupyter 또는 Colab 노트북에서 코드를 실행하는 경우, 훈련이 끝날 때 wandb.Run.finish()를 호출해야 합니다. 이렇게 하면 wandb 실행이 종료되고 TensorBoard 로그가 W&B로 업로드되어 W&B에서 시각화할 수 있습니다. .py 스크립트를 실행할 때는 스크립트가 끝나면 wandb가 자동으로 종료되므로 이 작업이 필요하지 않습니다. 노트북 환경에서 셸 명령을 실행하려면 !wandb sync directoryname처럼 명령 앞에 !를 붙여야 합니다.

TensorBoard와 함께 PyTorch를 사용하려면 어떻게 하나요?

PyTorch의 TensorBoard 통합 기능을 사용하는 경우, PyTorch Profiler에서 생성된 JSON 파일을 수동으로 업로드해야 할 수도 있습니다.
with wandb.init(project="my-project", sync_tensorboard=True) as run:
    run.save(glob.glob(f"runs/*.pt.trace.json")[0], base_path=f"runs")

클라우드에 저장된 tfevents 파일을 동기화할 수 있나요?

wandb 0.20.0 이상에서는 S3, GCS 또는 Azure에 저장된 tfevents 파일을 동기화할 수 있습니다. wandb는 아래 표에 나와 있는 명령으로 설정되는 각 클라우드 제공자의 기본 자격 증명을 사용합니다:
클라우드 제공자자격 증명로그 디렉터리 형식
S3aws configures3://bucket/path/to/logs
GCSgcloud auth application-default logings://bucket/path/to/logs
Azureaz login1az://account/container/path/to/logs

Footnotes

  1. AZURE_STORAGE_ACCOUNTAZURE_STORAGE_KEY 환경 변수도 설정해야 합니다.