데이터 전처리 | • 128 x 128 리사이즈 • 수평뒤집기(RandomHorizontalFlip, p = 0.5) • Normalize([-1, 1]) → GAN류 모델은 Generator 마지막 actiavtion이 tanh 여서 학습할 실제 이미지 데이터도 같은 이미지로 맞춰줌 |
공통 실험 조건 | • Optimizer: Adam(lr=0.0002, betas(0.5, 0.999) • Batch size: 64 • Epochs: 1000 • 20 epoch 마다 • 생성 샘플 이미지 저장( outputs/samples/epoch-XXXX.png )• 판별자/생성자 평균 손실 기록 • FID, MS-SSIM 평가 + logs.csv 기록• 손실/FID/MS-SSIM 곡선 그래프 업데이트 |
모델별 설명
DCGAN | • GAN의 가장 기본 구조 • 합성곱 신경망 기반 Generator & Discriminator • Baseline 모델 |
WGAN-GP | • Wasserstein GAN + Gradient Penalty • DCGAN 대비 학습 안정성⬆️, 모드 붕괴⬇️ • 작은 데이터셋에 특히 유리 |
AEGAN | • VAE + GAN 결합 • 잠재공간 정규화(KL) + 재구성 손실 + 적대적 손실 • 보다 다양한 모드 생성 기대 |
StyleGAN2-ADA | • 최신 StyleGAN2 + Adaptive Discriminator Augmentation • 소량 데이터셋에서 과적합 방지 효과 큼 • GPU 자원 요구⬆️ → 코랩 프로로 돌려야 할수도.. |
📂 출력물 정리
outputs/samples/epoch-XXXX.png
: 10 epoch마다 생성 샘플 그리드
outputs/checkpoints/ckpt-XXXX.pt
: 10 epoch마다 저장된 가중치
outputs/fid_samples/epoch_XXXX/
: FID/MS-SSIM 평가용 생성 샘플들
outputs/logs.csv
:epoch,g_loss,d_loss,fid,ms_ssim
outputs/plots/loss_curves.png
: 손실 곡선
outputs/plots/fid_curve.png
: FID 곡선
outputs/plots/ms_ssim_curve.png
: MS-SSIM 곡선
📝 이용 가이드
- 공통 조건(optimizer, lr, batch, epoch 등)은 절대 변경 금지
- 모델별로 모델 구현 셀만 수정
- DCGAN / WGAN-GP / AEGAN → 템플릿 내 모델 클래스 교체
- StyleGAN2-ADA → 별도 레포(NVlabs)에서 학습(폴더를 따로 만들어서), 템플릿에는 샘플/평가만 adapter로 통합