GAN 구현

논문에는 Discriminator나 Generator 모델 구조에 대한 설명이 되어 있지 않았음😢

Discriminator

Linear(1 * 28 * 28, 512)
LeakyReLU(0.2, True)
Linear(512, 256)
LeakyReLU(0.2, True)
Linear(256, 1)
Sigmoid()

Generator

block(in_feat, out_feat):
	Linear(in_feat, out_feat)
  BatchNorm1d(out_feat, 0.8)
  LeakyReLU(0.2, True)

    
block('latent_dim', 128)
block(128, 256)
block(256, 512)
block(512, 1024)
Linear(1024, 1 * 28 * 28)
Tanh()

4.png

이후 sample을 출력해보았는데… 다음의 사진이 나왔음. 이건 latent space가 아닌가..??????

그 이후로 꽁꽁 싸매다가 현우 형에게 도움을 요청했는데…. 세상에 Generator의 output을 flatten시킨 상태로 출력하고 있었음 ㅜㅜㅜㅜ

3395.png

다행히 제대로 된 sample을 얻을 수는 있었지만 mode collapse 현상이 발생하였음. epoch를 많이 돌려서 학습하지 않아 훈련이 제대로 되지 않은 상태라 mode collapse가 일어나는 것으로 판단하였음.