[Boostcamp AI Tech] PyTorch Monitoring tools

재윤·2022년 3월 7일
0

Boostcamp AI Tech

목록 보기
8/9

Tensorboard

  • TensorFlow의 프로젝트로 만들어진 시각화 도구
  • 학습 그래프, metric, 학습 결과의 시각화 지원
  • PyTorch도 연결 가능 → DL 시각화 핵심 도구

Tensorboard 주요기능(자주쓰는기능)

  • scalar : metric 등 상수 값의 연속(epoch)을 표시
  • graph : 모델의 computational graph 표시
  • histogram : weight 등 값의 분포를 표현
  • Image : 예측 값과 실제 값을 비교 표시
  • mesh : 3d 형태의 데이터를 표현하는 도구

How To Use?

Tensorboard 기록을 위한 directory 생성

import os
logs_base_dir = "logs"
os.makedirs(logs_base_dir, exist_ok=True)

기록 생성 객체 SummaryWriter 생성

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

값 기록

writer = SummaryWriter(logs_base_dir)
for n_iter in range(100):
	# add_scalar 함수 : scalar 값을 기록
    # Loss/train : loss category에 train 값
    # n_iter : x 축의 값
	writer.add_scalar('Loss/train', np.random.random(), n_iter)
	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()

weight & biases(Wandb)

  • 머신러닝 실험을 원활히 지원하기 위한 상용도구
  • 협업, code versioning, 실험 결과 기록 등 제공
  • MLOps의 대표적인 툴로 저변 확대 중

설치

!pip install wandb -q

config 설정

config={"epochs": EPOCHS, "batch_size": BATCH_SIZE, "learning_rate" : LEARNING_RATE}
wandb.init(project="my-test-project", config=config)
# wandb.config.batch_size = BATCH_SIZE
# wandb.config.learning_rate = LEARNING_RATE

기록

for e in range(1, EPOCHS+1):
	epoch_loss = 0
	epoch_acc = 0
	for X_batch, y_batch in train_dataset:
		X_batch, y_batch = X_batch.to(device), y_batch.to(device).type(torch.cuda.FloatTensor)
		# …
		optimizer.step()
		# …
    # log를 기록, TensorBoard의 add_와 동일한 기능
	wandb.log({'accuracy': train_acc, 'loss': train_loss})
profile
Naver Boostcamp AI Tech 3기🎈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ㅤㅤ⠀⠀ㅤㅤㅤㅤㅤㅤㅤㅤ2022 데이터분석 청년수련생

0개의 댓글