[Theory] Monitoring
Monitoring tools for Pytorch
- 학습 동안 loss,성능 확인 가능한 도구
Tensorboard
- 주로 시각화 기능을 제공하지만 그 외에도 다양한 편의 기능 제공
사용법
- 디렉터리 세팅
- 텐서플로우 설치 시 자동으로 설치
- 시각화하고자 하는 log 데이터를 모아야 한다
- Tensorboard가 log데이터가 쌓이는 디렉터리를 모니터링하고, 자동으로 변경된 부분을 읽어 그래프를 업데이트
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import os
logs_base_dir = "logs"
os.makedirs(logs_base_dir, exist_ok=True)# Tensorboard 기록을 위한 directory 생성
from torch.utils.tensorboard import SummaryWriter # 기록 생성 객체 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)
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()# 값 기록
%load_ext tensorboard # jupyter 상에서 Tensorboard 실행
%tensorboard --logdir {logs_base_dir}
add_scalar
: scalar 값을 기록Loss/train
: loss category 에 train 값n_iter
: x축의 값
weight and biases
- 머신러닝 실험을 원활히 지원하기 위한 상용도구
- 협업,code versioning, 실험 결과 기록 등 제공
- MLOps 의 대표적인 툴
사용법
- 가입 후 API 확인
- 새로운 프로젝트 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
!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()
# …
#기록 add_scalar 함수와 동일
wandb.log({'accuracy': train_acc, 'loss': train_loss})