DCGAN深度卷积生成对抗网络的意义和设计的技巧(TensorFlow2.0)

什么是DCGAN

DEGAN就是将CNN和原始的GAN结合到了一起,生成模型和判别模型都运用了深度卷积神经网络的生成对抗网络

DCGAN的设计

DCGAN深度卷积生成对抗网络的意义和设计的技巧(TensorFlow2.0)
反卷积结构
DCGAN深度卷积生成对抗网络的意义和设计的技巧(TensorFlow2.0)

DCGAN设计技巧

  • 取消所有的pooling层。G网络中使用转置卷积(transposed convolutional layer)进行上采样,D网络中加入stride的卷积代替pooling。
  • 去掉FC层,使网络变为全卷积网络
  • G网络中使用relu作为**函数,最后一层使用tanh
  • D网络中使用LeakyReLU作为**函数
  • 在generator和discriminator上都使用batchnorm。解决初始化差的问题,帮助梯度传播到每一层。防止generator把所以样本都收敛到同一个点。 直接将BN应用到所以层会导致样本震荡和模型不稳定,通过在generator输出层和discriminator输入层不采用BN可以防止这种现象。
  • 使用Adam优化器