728x90
  • 1편 : 프로젝트 요약 및 LightningModule 설계
  • 2편 : Dataset 구축 및 DataLoader 구축
  • 3편 : logger 작성, wandb 연동 및 확인
  • 4편 : 모델 로딩 및 실행결과(wandb) 확인

이번에는 훈련이 잘되고 있는지 확인하기 위해 필요한 것들에 대해 알아보려고 합니다. 모델 인수들이 잘 입력되었는지 log에 확인하기 위한 logger 작성과 훈련 loss들이 잘 훈련되고 있는지에 대해 알려주는 wandb, tensorboard에 대해 알아보려고합니다.(tensorboard는 추후에 작성하도록 하겠습니다.)

 

logger 작성

import logging
import sys

def get_logger(name: str) -> logging.Logger:
    """Return logger for logging

    Args:
        name: logger name
    """
    logger = logging.getLogger(name)
    logger.propagate = False
    logger.setLevel(logging.DEBUG)
    if not logger.handlers:
        handler = logging.StreamHandler(sys.stdout)
        handler.setFormatter(logging.Formatter("[%(asctime)s] %(message)s"))
        logger.addHandler(handler)
    return logger
  • logging.getLogger(name) : 이름이 'name'인 로거 객체를 생성하거나, 존재하는 경우 해당 로거를 반환한다.
  • logger.setLevel(logging.DEBUG) : 로거의 로그 레벨을 'DEBUG'로 설정
  • logger.handler : 로거에 핸들러(콘솔, 파일)가 없는 경우 설정
    • handler.setFormatter(logging.Formatter("[%(asctime)s] %(message)s"))는 로그 메시지의 형식을 설정
      • %(asctime)s는 로그가 기록된 시간, %(message)s는 로그 메시지를 나타낸다.
      • logger.addHandler(handler)는 생성된 핸들러를 로거에 추가

 

wandb 사용

wandb 로그인 방법은 여기를 클릭하세요.

import wandb
from pytorch_lightning.loggers import WandbLogger

wandb.login()

wandb.login()을 이용해 API KEY를 입력하면 wandb 연동 성공입니다.

 

이제 마지막으로 모델로딩, 훈련 및 실행결과를 확인해보도록 하겠습니다.