DL 학습에 대한 기록

Tensorboard

TensorFlow의 프로젝트로 만들어진 시각화 도구

학습 그래프, metric, 학습 결과의 시각화 지원

대시보드를 통해 쉽게 학습 결과를 확인할 수 있다.

PyTorch도 연결 가능 → DL 시각화 핵심 도구


import os
logs_base_dir = "logs"
# Tensorboard 기록을 위한 directory 생성
# 상위 디렉토리로 위치를 설정한 후, 하위디렉토리에 여러 실험을 기록하면
# 여러 실험 결과를 동시에 비교하는 것도 가능하다.
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 값을 기록
		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() # disk에 값 기록하기
		
# jupyter 상에서 tensorboard 수행
%load_ext tensorboard
# 파일 위치 지정(logs_base_dir)
%tensorboard --logdir {logs_base_dir}

weight & biases(W&B)

머신러닝 실험을 원활히 지원하기 위한 상용도구

협업, code versioning, 실험 결과 기록 등 제공

MLOps의 대표적인 툴로 자리 잡는 추세.


Weights & Biases – Developer tools for ML

가입 후 Setting > API key를 활용하면 된다.

!pip install wandb -q
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()
				# …
		wandb.log({'accuracy': train_acc, 'loss': train_loss})