首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用DCGAN实现图像生成

星标或者置顶【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

博观而约取

厚积而薄发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190130G11YG600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券