[PyTorch] Monitoring tools

Jeonghyun·2022년 9월 29일

PyTorch

목록 보기
5/6

Tensorboard

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

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

import os
logs_base_dir ="logs"
os.makedirs(logs_base_dir, exist_ok=True)  # Tensorboard 기록을 위한 디렉토리 생성

from torch.utils.tensorboard  # 기록 생성 객체 SummaryWriter 생성
import SummaryWriter
import numpy as np

writer =SummaryWriter(logs_base_dir) 
for n_iter in range(100):
	writer.add_scalar('Loss/train', np.random.random(), n_iter)   # add_scalar : scalar 값을 기록
	writer.add_scalar('Loss/test', np.random.random(), n_iter)    # Loss/train : loss category에 train 값
	writer.add_scalar('Accuracy/train', np.random.random(), n_iter)   # n_iter : x축의 값
	writer.add_scalar('Accuracy/test', np.random.random(), n_iter)
writer.flush()  # 값 기록

weight & biases (WandB)

  • 머신러닝 실험을 원활히 지원하기 위한 상용 도구
  • 협업, code versioning, 실험결과 기록 제공
!pip install wandb -q

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

for e in range(1, EPOCHS + 1):
	epoch_loss = 0
    epoch_acc = 0
    ...
    optimizer.step()
    ...

wandb.log({'accuray': train_acc, 'loss' : train_loss})  # 기록, add_함수와 동일
    




출처 - 부스트캠프 AI tech 교육자료


[부스트캠프 AI Tech] Week 2 - Day 4

0개의 댓글