728x90

1. 대표적인 모니터링 툴

  • Tensorboard
  • weight & biases (wandb)

 

2. Tensorboard

  • Tensorflow의 프로젝트로 만들어진 시각화 도구
  • 학습 그래프, metric, 학습 결과의 시각화 지원
  • PyTorch도 연결 가능 -> DL 시각화 핵심 도구
  • scalar : metric 등 상수 값의 연속 표시(acc, loss, pre, re 등을 epoch 단위로)
  • graph : 모델의 computational graph 표시
  • histogram : weight 등 값의 분포(주로 정규분포로)를 표현
  • Image : 예측값과 실제 값을 비교 표시
  • mesh : 3d 형태의 데이터를 표현하는 도구
import torch
from torch.utils.tensorboard import SummaryWriter

# 기록 생성 객체 SummaryWriter 생성
writer = SummaryWriter(dir)  # dir라는 위치 지정
'''
<스칼라(scalar) 기록하기>
- 스칼라는 각 학습 단계(step)에서의 손실 값이나 각 에폭 이후의 정확도를 저장하는 데 도움
- 스칼라 값을 기록하려면 add_scalar(tag, scalar_value, global_step=None, walltime=None) 을 사용해야
- add_scalar : 손실 값을 기록. add하는 데이터 타입이 scalar(상수)라는 뜻.
'''
x = torch.arange(-5, 5, 0.1).view(-1, 1)
y = -5 * x + 0.1 * torch.randn(x.size())

model = torch.nn.Linear(1, 1)
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr = 0.1)

def train_model(iter):
    for epoch in range(iter):
        y1 = model(x)
        loss = criterion(y1, y)
        writer.add_scalar("Loss/train", loss, epoch) # epoch : x축의 값
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

train_model(10)
writer.flush()  # 값 기록(disk에 쓰기)

# 파일 위치 지정
%load_ext tensorboard
%tensorboard--logdir{logs_base_dir} #logs_base_dir라는 이름의 위치를 파일 위치로 지정

 

3. weight & biases

  • 유료지만, 기본 버전은 무료
  • 머신러닝 실험을 원활하도록 돕는 상용 서비스
  • 협업, code versioning, 실험 결과 기록 등 제공 -> 공유 기능 가장 좋은 툴/data, code, model 나눠서 git처럼 쓸 수 있음
  • MLOps의 대표적인 툴 중 하나

 

 

728x90