🐍 Python & library/PyTorch Lightning

[PyTorch Lightning] 로그 기록, Tensorboard로 Logging하기

복만 2023. 1. 9. 13:19
 

Logging — PyTorch Lightning 1.8.6 documentation

Shortcuts

pytorch-lightning.readthedocs.io

 

로그를 기록하는 방법은 Lightening Module에서 self.log()self.log_dict()를 이용하면 된다.

 

def training_step(self, batch, batch_idx):
    self.log_dict({'acc': acc, 'recall': recall})
    self.log('acc', acc)

 

logging (log(), log_dict() 모두 동일하게 적용) 의 중요한 인자는 on_stepon_epoch이다. 

  • on_step: 현재 step에 logging
  • on_epoch: 로그를 축적하여 epoch 마지막에 logging

 

어느 위치에서 logging method를 호출하느냐에 따라 on_step과 on_epoch가 자동으로 설정된다 (물론 수동으로 이 값을 지정해도 된다)

 

logging으로 저장된 값들은 trainer.logged_metrics에서 확인할 수 있다.

 

def training_step(self, batch, batch_idx):
    self.log("a_val", 2, logger=True)


logged_metrics = trainer.logged_metrics
assert logged_metrics["a_val"] == 2


Trainer을 초기화할 때 logger에 TensorBoardLogger를 전달하면 Tensorboard로 logging을 할 수 있다.

 

from pytorch_lightning import Trainer
from pytorch_lightning.loggers import TensorBoardLogger

logger = TensorBoardLogger(save_dir='logs/')
trainer = Trainer(logger=logger)

 

Tensorboard 외에도 다음과 같이 다양한 logger을 이용할 수 있다. (참고)

반응형