Super Kawaii Cute Cat Kaoani Pytorch에서 TensorBoard 사용하기

연구/PyTorch

Pytorch에서 TensorBoard 사용하기

치킨고양이짱아 2023. 8. 3. 16:59
728x90
728x90

머신러닝을 진행할 때, 네트워크가 어떻게 학습이 되고 있는지 확인하기 위해서는 loss 그래프 등을 확인할 필요가 있다. 이때 흔히 사용하는 것이 TensorBoard이다.

Tensorboard는 다음과 같은 기능을 제공한다.

  • 손실 및 정확도와 같은 측정항목 추적 및 시각화
  • 모델 그래프(작업 및 레이어) 시각화
  • 시간의 경과에 따라 달라지는 가중치, 편향, 기타 텐서의 히스토그램 확인
  • 저차원 공간에 임베딩 투영
  • 이미지, 텍스트, 오디오 데이터 표시
  • TensorFlow 프로그램 프로파일링
  • 그 외 다양한 도구

그럼 Pytorch에서 Tensorbard를 어떻게 사용할 수 있을지 알아보자!

1. SummaryWriter 인스턴스 생성하기

import torch
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()

Writer는 기본적으로 ./runs/ 디렉토리에 출력된다고 한다. 원하는 디렉토리에 출력하려면 다음과 같이 경로를 지정해주어야한다.

writer = SummaryWriter('logs/')

 

2. 스칼라 기록하기

각 학습 단계에서 손실 값이나, 각 에폭 이후의 정확도를 알기 위해서 스칼라 값을 기록해줘야한다. 아래 코드에서는 forward 함수의 loss 값을 update하는 부분에서 add_scalar 함수를 통해 loss 값과 epoch 값을 기록해주었다.

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)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

train_model(10)
writer.flush()

 

3. 스칼라 기록 끝내기

학습이 끝난 뒤에는 꼭 close 메소드를 호출해주어야한다. 만약 호출해주지 않는다면 기록한 scalar 값이 저장되지 않는다고 한다.

writer.close()

 

4. TensorBoard 실행하기

기록된 데이터를 시각화하기 위해서는 다음과 같이 TensorBoard를 설치해줘야한다.

$ pip install tensorboard

아래와 같이 텐서보드를 실행해준다.

$ tensorboard --logdir ./logs

logdir 인자는 TensorBoard가 출력할 수 있는 이벤트 파일들을 찾을 디토리를 가리킨다. 디렉토리 구조에서는 *tfevents.* 형태로 이루어진 파일을 재귀적으로 탐색하게 된다.

위의 명령어를 실행해주면 URL 하나를 제공해주는데 (아래처럼)

TensorBoard 2.8.0 at http://localhost:6006/

이 URL에 접속하면 Tensorboard를 확인할 수 있다.

Reference

https://tutorials.pytorch.kr/recipes/recipes/tensorboard_with_pytorch.html

 

PyTorch로 TensorBoard 사용하기

TensorBoard는 머신러닝 실험을 위한 시각화 툴킷(toolkit)입니다. TensorBoard를 사용하면 손실 및 정확도와 같은 측정 항목을 추적 및 시각화하는 것, 모델 그래프를 시각화하는 것, 히스토그램을 보는

tutorials.pytorch.kr

https://eehoeskrap.tistory.com/599

 

[PyTorch] 파이토치에서 TensorBoard 사용하기

텐서보드는 머신러닝 실험에 필요한 시각화 및 도구를 제공한다. 손실 및 정확도와 같은 측정항목 추적 및 시각화 모델 그래프(작업 및 레이어) 시각화 시간의 경과에 따라 달라지는 가중치, 편

eehoeskrap.tistory.com

728x90
728x90