星标或者置顶【OpenCV学堂】
干货文章与技术教程第一时间送达
DCGAN介绍
原始的GAN网络在训练过程中生成者生成图像质量不太稳定,无法得到高质量的生成者网络,导致这个问题的主要原因是生成者与判别者使用相同的反向传播网络,对生成者网络的改进就是用卷积神经网络替代原理的MLP实现稳定生成者网络,生成高质量的图像。这个就是Deep Convolutional Generative Adversarial Network (DCGAN)的由来。相比GAN,DCGAN把原来使用MLP的地方都改成了CNN,同时去掉了池化层,改变如下:
判别器使用正常卷积,最后一层使用全连接层做预测判别
生成器根据输入的随机噪声,通过卷积神经网络生成一张图像
无论是生成器还是判别器都在卷积层后面有BN层
生成器与判别器分别使用relu与leaky relu作为激活函数, 除了生成器的最后一层
生成器使用转置/分步卷积、判别器使用正常卷积。
最终DCGAN的网络模型如下:
其中基于卷积神经网络的生成器模型如下:
判别器模型如下:
代码实现
生成器:
判别器:
损失函数与训练
训练与输出
loss曲线
生成器图像变化 - 初始状态!
生成器图像变化 - 1 epoch之后
生成器图像变化 - 2 epoch之后
参考:
https://github.com/carpedm20/DCGAN-tensorflow
https://github.com/sugyan/face-generator
博观而约取
厚积而薄发
领取专属 10元无门槛券
私享最新 技术干货