1. Intro
- 긴 학습시간… 기다림의 기록이 필요
- log, csv 등도 활용가능
- 잘만들어진 도구를 활용하자
- Tensorboard
- weigth & biases
2. Tensorboard
- TensorFlow의 프로젝트로 만들어진 시각화 도구
- 학습 그래프, metric, 학습 결과의 시각화 지원
- Pytorch도 연결 가능 $\rightarrow$ 핵심도구
2.1 자주 사용하는 것들
- scalar: metric 등 상수 값의 연속을 표시 (epoch 마다)
- Acc, Precision, Recall, Loss, 등
- graph: 모델의 computational graph 표시
- histogram: weight 등 값의 분포 표현
- image: 예측 값과 실제 값을 비교 표시
- mesh: 3d 형태의 데이터를 표현
import os
logs_base_dir = 'logs' # 로그를 저장할 공간 생성
os.makedirs(logs_base_dir, exist_ok=True)
# 기록 생성 라이브러리 임포트
from torch.utils.tensorboard import SummaryWriter
# 기록을 위한 객체 생성
wirter = SummaryWriter(logs_base_dir)
# 학습 동안 원하는 값을 저장
for n in range(100):
writer.add_scalar('Loss/train', loss, n)
writer.add_scalar('Loss/valid', val_loss, n)
writer.add_histogram('distribution centers', x + i, i)
writer.add_images('my_image_batch', img_batch, 0)
writer.add_mesh('my_mesh', vertices=vertices_tensor, colors=colors_tensor, faces=faces_tensor)
# disk에 기록
writer.flush()
# jupyter notebook 상에서 tensorboard 수행,
# log 파일 위치 지정필요
# 콘솔에서도 동일하게 실행가능
%load_ext tensorboard
%tensorboard --logdir {logs_base_dir}
2.2 Advanced
- 참고 Documents
3. Weight & biases
- 머신러닝 실험을 원활히 지원해주는 사용도구
- 협업과 code versioning, 실험 결과 기록 등의 기능 제공
- MLOps의 대표적인 도구로 진화 중
3.1 설치하기
pip install wandb -q
3.2 활용하기
- 프로젝트 설정 및 config 설정하기
conf = {'eopch': epochs, 'batch_size': batch_size, 'learning_rate':lr}
wandb.init(project="프로젝트명", config=conf)
# 가입 후 API key 입력 필요
- 정보 기록하기
for e in range(epochs):
loss = 0
acc = 0
for X, y in dataloader:
X, y = ...
...
optim.step()
...
# tensorboard의 add와 동일
wandb.log({'Acc':acc, 'Loss':loss})
wandb.watch(model, log='all') # 모든 Parmeter 관리