데이터 준비 단계
Model Implementation
Loss Implementation
Updater Implementation
Iterative Learning
1) Data preparation
Data를 내 cpu, gpu로 가져오는 단계
데이터 분절화
train / valid / test 데이터로 separation
validation data는 parameter update에는 사용되지 않음 (Early Stop에 사용)
data tensor화
5) Iterative Learning
PyTorch Lightning
PyTorch는 low-level에선 매우 복잡하지만, simple한 Interface를 통해 배우는 과정
PyTorch 세계에서의 Keras
Keras
기계학습 Framework보다 Interface의 역할
다양한 기계학습 라이브러리와 호환
PyTorch에 대한 high-level 인터페이스 제공
더 높은 수준의 자동화 기능 제공
PyTorchLightning.LightningModule
은 torch.nn.Module
을 확장시켜 놓은 것
기존 nn.Module은 언제 update 및 loss를 돌릴지 제한이 없지만,
LightningModule은 일반적인 패턴을 이용해 구현
PyTorchLightning.Trainer
을 이용하면 학습 과정을 간단히 구현
prepare_data()
, setup()
은 예약된 method
prepare_data()
은 한 script에 한 번 수행
setup()
은 gpu 개수만큼 호출
PL에선 dataloader의 이름을 들고 다닐 필요 없이 함수처럼 사용
nn.Module
대신 pl.LightningModule
사용PyTorch Metric 구현 모음
※ 모든 이미지 및 코드 출처는 네이버 커넥트재단 부스트캠프 AI Tech 5기입니다. ※