GAN网络学习之DCGAN(二)

本文深入介绍DCGAN,解释了其与基础GAN的区别,包括用卷积代替池化、引入批量归一化等改进,并提供了网络结构和代码讲解,帮助读者理解并实现DCGAN。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初识DCGAN

:什么是DCGAN?
答:DC意为deep convolution,它把卷积神经网络应用在对抗生成网络中。
:DCGAN相对于GAN做了哪些改变?
:有以下几点:
(1)池化层pooling被卷积层convolution代替,网络结构中没有池化层。
具体而言,在生成模型中,允许卷积层代替池化层完成空间上采样的学习;
在判别模型中,允许卷积层代替池化层完成空间下采样的学习;
(2)在生成模型和判别模型中使用batchnorm。解决的问题是1)初始化差的问题;2)梯度消失、弥散等问题;3)防止生成模型把所有样本收敛于同一点;
(3)相比CNN移除了全连接层
(4)使用激活函数不同,生成模型中出输出层使用tanh外,其他全部采用 Relu;判别模型全部采用Leaky ReLU。

DCGAN网络结构

1 G网络
在这里插入图片描述
100z代表一个100维的噪音向量,先通过一个简单的全连接层reshape成4X4X1024的特征图形式,再通过四层CONV层实现反卷积,最终输出一个64X64X3的图片。
2 D网络
在这里插入图片描述

代码讲解

1 数据及代码
数据:人脸数据 提取码:c8u3
卡通图像 提取码:6u6m
DCGAN代码提取码:umsx
2 代码讲解
(1)创建结构

  main.py文件
 dcgan = DCGAN(
          sess,
          input_width=FLAGS.input_width,                //输入输出数据的大小
          input_height=FLAGS.input_height,
          output_width=FLAGS.output_width,
          output_height=FLAGS.output_height,
          batch_size=FLAGS.batch_size,                 //一次迭代用到图像的数量
          c_dim=FLAGS.c_dim,                               //通道数,黑白为1,彩色为3
          dataset_name=FLAGS.dataset,               //数据集名字
          input_fname_pattern=FLAGS.input_fname_pattern,
          is_crop=FLAGS.is_crop,                            //是否进行crop
          checkpoint_dir=FLAGS.checkpoint_dir,                //存储模型参数的路径
          sample_dir=FLAGS.sample_dir)

model.py文件

class DCGAN(object):
  def __init__(self, sess, input_height=108, input_width=108, is_crop=True,
         batch_size=64, sample_num = 64, output_hei
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值