본문 바로가기

부스트캠프 AI Tech/Pytorch

[13] Monitoring tool - Tensorboard

Tensorboard


  • TensorFlow의 프로젝트로 만들어진 시각화 도구
  • 학습 그래프, metric, 학습 결과의 시각화 지원
  • PyTorch도 연결 가능 → DL 시각화 핵심 도구
  • Parameters
    • scalar : metric 등 상수 값의 연속(epoch)을 표시
    • graph : 모델의 computational graph 표시
    • histogram : weight 등 값의 분포를 표현
    • Image : 예측 값과 실제 값을 비교 표시
    • mesh : 3d 형태의 데이터를 표현하는 도구

코드 작업

import os
import numpy as np 
from torch.utils.tensorboard import SummaryWriter

logs_base_dir = "logs"
os.makedirs(logs_base_dir, exist_ok=True) # log 저장 디렉토리 생성

writer = SummaryWriter(logs_base_dir) # 기록 생성 개체 생성

# epoch 도는 경우 조건문 사용해서 5 step 마다 저장하는 식으로 가능
for n_iter in range(100):
  writer.add_scalar('Loss/train', np.random.random(), n_iter)  # y축, x축 값 (y : loss, x : epoch or step)
  writer.add_scalar('Loss/test', np.random.random(), n_iter)
  writer.add_scalar('Accuracy/train', np.random.random(), n_iter)
  writer.add_scalar('Accuracy/test', np.random.random(), n_iter)
writer.flush() # 값 디스크에 쓰기

# jupyter 상에서 tensorboard 생성
%load_ext tensorboard
%tensorboard --logdir {logs_base_dir} 

출력화면

 

터미널에서 Tensorboard 실행


  • pip install tensorboardX
  • pip install tensorflow-gpu==version
  • tensorboard --logdir=directory_to_log_file --port=8008 (두 개 이상 학습 할 때 별도 포트설정 기본포트 : 6006)
  • 실행 후 생성되는 주소로 실행 가능

학습을 끊었다가 다시 하는경우

  • 메인 코드에서 summary = SummaryWriter(dir_to_log_file)에서 dir_to_log_file의 주소를 이전 log가 존재하던위치로 설정해주면 알아서 이어서 그래프를 plot
  • 하지만 x축으로 이용되는 변수(iteration)가 다시 1부터 시작하게 될 경우 그래프가 덧씌어져 의미 없게 되므로 이에대한 대처코드가 training code에 존재해야 한다.

'부스트캠프 AI Tech > Pytorch' 카테고리의 다른 글

[15] Multi-GPU 학습  (0) 2022.01.24
[14] monitoring tool - wandb  (0) 2022.01.24
[12] 전이학습 tansfer learning  (0) 2022.01.24
[11] image transform  (1) 2022.01.23
[10] Dataloader 의 기본요소  (0) 2022.01.22