2.2.7 훈련 과정 모니터링
파이토치로 머신 러닝/딥러닝 모델을 만들어 학습해 보면 학습이 진행되는 과정에서 각 파라미터에 어떤 값들이 어떻게 변화하는지 모니터링하기 어렵습니다. 이때 텐서보드를 이용하면 학습에 사용되는 각종 파라미터 값이 어떻게 변화하는지 손쉽게 시각화하여 살펴볼 수 있으며 성능을 추적하거나 평가하는 용도로도 사용할 수 있습니다.
파이토치에서 텐서보드를 사용하는 방법은 간단히 다음과 같습니다. (실습은 뒷장에서 합니다. 여기에서는 간단히 과정만 살펴보세요.)
1. 텐서보드를 설정(set up)합니다.
2. 텐서보드에 기록(write)합니다.
3. 텐서보드를 사용하여 모델 구조를 살펴봅니다.
먼저 모델 학습에 대한 모니터링을 위해 터미널 커맨드라인(아나콘다 프롬프트)에서 pip 명령어를 사용하여 다음 패키지를 설치합니다.
> pip install tensorboard
설치가 완료되었으면 텐서보드를 사용하기 위한 코드를 작성합니다.
import torch from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter("../chap02/tensorboard") ------ 모니터링에 필요한 값들이 저장될 위치 for epoch in range(num_epochs): model.train() ------ 학습 모드로 전환(dropout=True) batch_loss = 0.0 for i, (x, y) in enumerate(dataloader): x, y = x.to(device).float(), y.to(device).float() outputs = model(x) loss = criterion(outputs, y) writer.add_scalar("Loss", loss, epoch) ------ 스칼라 값(오차)을 기록 optimizer.zero_grad() loss.backward() optimizer.step() writer.close() ------ SummaryWriter가 더 이상 필요하지 않으면 close( ) 메서드 호출