Pytorch Tensorboard

Jiwon Kim
|2023. 12. 12. 15:58

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

 

 

텐서보드

 

- 학습에 사용되는 각종 파라미터 값이 어떻게 변화하는지 시각화하여 살펴볼 수 있음

- 성능(loss/accuracy) 추적, 시각화 or 평가 용도

 


 

 

(1) SummaryWriter 인스턴스 생성

 

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

 

모니터링 값들이 출력되는 디렉토리를 ()에 설정해줄 수 있음 

 

 

(2) 스칼라(scalar) 기록하기 

 

- 스칼라는 각 학습 단계에서 손실 값이나 각 에폭 이후의 정확도를 저장하는데 도움을 줌

- 스칼라 값을 기록하려면 아래 인자들을 사용해야 함

 add_scalar(tag, scalar_value, global_step=None, walltime=None)

 

 
 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", loss, epoch)          # 스칼라 값(오차) 기록
         optimizer.zero_grad( )
         loss.backward( )
         optimizer.step( )

 train_model(10)
 writer.flush( )
 

 

- pending 이벤트가 디스크에 기록되었는지 확인하려면 flush() 메소드 호출

 

 

(3) 기록 끝내기 

 

Summary Writer가 더 이상 필요하지 않으면 close() 메소드 호출

 

 
 writer.close( )
 

 

 

(4) Tensorboard 실행하기 

 

- 기록한 데이터를 시각화하기 위함 

 

( 아래 코드는 코랩에서 실행 )

 

 
 %load_ext tensorboard
 %tensorboard --logdir=runs
 

 

 

그럼 아래처럼 에포크에 따른 loss 그래프, 그리고 값들도 뜬다.

 

'Study > 딥러닝' 카테고리의 다른 글

Batch Normalization  (0) 2023.12.19
Regularization  (0) 2023.12.17
파이토치  (0) 2023.12.11
Weight Initialization  (1) 2023.10.22
Data Preprocessing & Augmentation  (1) 2023.10.22