Skip to main content
W&B Multi-tenant SaaS에서는 임베디드 TensorBoard를 지원합니다.
TensorBoard 로그를 클라우드에 업로드하고, 동료 및 반 친구들과 결과를 빠르게 공유하고, 분석을 한곳에 모아 관리하세요.
TensorBoard 인테그레이션 코드

시작하기

import wandb

# `sync_tensorboard=True`로 wandb run 시작
wandb.init(project="my-project", sync_tensorboard=True) as run:
  # TensorBoard를 사용하는 트레이닝 코드
  ...

예제 TensorBoard 인테그레이션 run을 살펴보세요. run이 완료되면 W&B에서 TensorBoard 이벤트 파일에 액세스할 수 있으며, 시스템의 CPU 또는 GPU 사용량, git 상태, run에 사용된 터미널 명령 등 유용한 추가 정보와 함께 W&B 기본 차트에서 메트릭을 시각화할 수 있습니다.
W&B는 모든 버전의 TensorFlow에서 TensorBoard를 지원합니다. 또한 PyTorch 및 TensorBoardX와 함께 TensorBoard 1.14 이상도 지원합니다.

자주 묻는 질문

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 run을 종료하여 tensorboard 로그를 W&B에 업로드합니다 (Notebook에서 실행 중인 경우)
run.finish()
이 방법에 tensorboard_x=False를 전달하면 기본 TensorBoard가 패치되도록 할 수 있습니다. PyTorch와 함께 TensorBoard > 1.14를 사용하는 경우에는 pytorch=True를 전달해 패치되도록 할 수 있습니다. 두 옵션 모두 임포트된 라이브러리 버전에 따라 적절한 기본값이 자동으로 적용됩니다. 기본적으로 tfevents 파일과 모든 .pbtxt 파일도 동기화합니다. 이를 통해 W&B가 사용자를 대신해 TensorBoard 인스턴스를 실행할 수 있습니다. run 페이지에 TensorBoard 탭이 표시됩니다. 이 동작은 wandb.tensorboard.patchsave=False를 전달해 비활성화할 수 있습니다.
import wandb

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

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

과거 TensorBoard run은 어떻게 동기화하나요?

로컬에 저장된 기존 tfevents 파일이 있고 이를 W&B로 임포트하려면 wandb sync log_dir를 실행하면 됩니다. 여기서 log_dirtfevents 파일이 들어 있는 로컬 디렉터리입니다.

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

Jupyter 또는 Colab 노트북에서 코드를 실행하는 경우, 트레이닝이 끝날 때 wandb.Run.finish()를 반드시 호출하세요. 그러면 wandb run이 종료되고 TensorBoard 로그가 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 환경 변수도 설정해야 합니다.