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 |