7. Monitoring tools for PyTorch

유승우·2022년 5월 11일
0

7. Monitoring tools for PyTorch

Pytorch를 이용해 학습 시 metric등을 기록할 때 대표적으로 Tensorboard와 weight & Biases 도구를 사용한다.

Tensorboard


  • TensorFlow의 프로젝트로 만들어진 시각화 도구
  • 학습 그래프, metric, 학습 결과의 시각화 지원
  • 대부분의 딥러닝프레임워크들이 Tensorboard와 연결되고 있다. → DL의 핵심도구
scalarmetric 등 상수값의 연속을 표시
graph모델의 computational graph 표시
histogramweight 등 값의 분포를 표현
image예측 값과 실제 값을 비교 표시
mesh3d 형태의 데이터를 표현하는 도구
# Tensorboard 기록을 위한 directory 생성
import os
logs_base_dir = "logs"
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 값을 기록
		# Loss/train : loss caegory train 값
		# n_iter : x축의 값
		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
%tensorboard --logdir {logs_base_dir}

weight & biases


  • 딥러닝 뿐만 아니라 머신러닝 사용을 원활히 지원하기 위한 상용도구
  • 협업 , code versioning, 실험 결과 기록 등 제공
  • MLOps의 대표적인 툴로 저변 확대 중
!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_~~~함수와 동일
				wandb.log({'accuracy': train_acc, 'loss': train_loss})

0개의 댓글