AI Development/PyTorch

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

꾸준희 2022. 2. 4. 14:44
728x90
반응형

 

텐서보드는 머신러닝 실험에 필요한 시각화 및 도구를 제공한다. 

 

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

 

텐서보드를 파이토치 에서도 사용 할 수 있다. 

 

 

 

1. SummaryWriter 인스턴스 생성하기

 

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

 

Writer 는 기본적으로 ./runs/ 디렉터리에 출력된다고 한다. 원하는 디렉터리에 출력하려면 아래와 같이 수정한다. 

 

writer = SummaryWriter('logs/')

 

 

2. 스칼라 기록하기 

 

각 학습 단계에서 손실 값이나 각 에폭 이후 정확도를 저장하는 것은 중요하다. 이를 위해 스칼라 값을 기록해준다. 

forward 연산 중 loss 를 업데이트 하는 부분에서 add_scalar 함수를 통해 기록하고자 하는 변수를 파라미터로 넘겨준다. 

예시 코드는 아래와 같다. 

 

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 메소드를 꼭! 호출해준다. close 하지 않으면 loss 값이 저장되지 않는다고 한다. 

 

writer.close()

 

 

4. 텐서보드 실행하기 

 

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

 

~$ tensorboard --logdir ./logs

 

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

 

 

 

위 명령어를 실행해주면 터미널에 아래와 같이 나타난다. 제공하는 URL을 클릭하면 된다. 

 

TensorFlow installation not found - running with reduced feature set.

NOTE: Using experimental fast data loading logic. To disable, pass
    "--load_fast=false" and report issues on GitHub. More details:
    https://github.com/tensorflow/tensorboard/issues/4784

Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.8.0 at http://localhost:6006/ (Press CTRL+C to quit)

 

 

 

 

 

 

 

참고자료 1 : https://tutorials.pytorch.kr/recipes/recipes/tensorboard_with_pytorch.html

 

PyTorch로 TensorBoard 사용하기 — PyTorch Tutorials 1.10.1+cu113 documentation

Note Click here to download the full example code PyTorch로 TensorBoard 사용하기 TensorBoard는 머신러닝 실험을 위한 시각화 툴킷(toolkit)입니다. TensorBoard를 사용하면 손실 및 정확도와 같은 측정 항목을 추적 및

tutorials.pytorch.kr

 

참고자료 2 : https://velog.io/@jkseo50/Tensorboard%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-Loss-%EC%8B%9C%EA%B0%81%ED%99%94-Pytorch

 

Tensorboard를 활용한 Loss 시각화 (Pytorch)

텐서보드는 머신러닝 실험에 필요한 다양한 시각화 및 도구를 제공하는 구글에서 개발한 오픈소스입니다. 해당 문서에서는 pytorch에서 tensorboard를 활용하여 학습 진행 과정에 따른 loss 변화를 시

velog.io

 

728x90
반응형