GAN - Serbipunk/notes GitHub Wiki
DCGAN
pytorch
https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html
# (1) Update D network: maximize log(D(x)) + log(1 - D(G(z)))
# (2) Update G network: maximize log(D(G(z)))
lightning
g_opt, d_opt = self.optimizers()
d_x = self.D(X)
errD_real = self.criterion(d_x, real_label)
d_z = self.D(g_X.detach())
errD_fake = self.criterion(d_z, fake_label)
errD = errD_real + errD_fake
d_opt.zero_grad()
self.manual_backward(errD)
d_opt.step()
d_z = self.D(g_X)
errG = self.criterion(d_z, real_label)
g_opt.zero_grad()
self.manual_backward(errG)
g_opt.step()