DCGAN结构解读

来源:互联网 发布:阿里妈妈淘宝客安全吗 编辑:程序博客网 时间:2024/05/16 17:33

DCGAN的原文里面给出的结构如下:
这里写图片描述

这是G的结构,而D则是完全相反的:
这里写图片描述

刚看论文的时候觉得结构很清晰,但是实际写代码的时候并不是很能够清楚表示,相信有很多人也是这种感觉,因此这边做一个分析,以便后面的同学理解。

这里面涉及到一个名词叫fractionally-strided convolution,与传统的卷积有所区别,这里先做个理解:

  • regular convolution
    输入大小为i,stride为s,padding为p,kernel为k,输出大小为o,则
    这里写图片描述
    这里写图片描述
    (i=6, s=2, p=1, 0=3)
  • fractionally-strided convolution
    o′=s(i′−1)+k−2p
    这里写图片描述

其实相当于在输入中间插入s-1条0,然后按照一般的卷积方法。

到这之后,就可以来说说结构了,举例来说:
对D: 64*64*3->32*32*64
kernel 是 5*5, stride是2, padding是2,算出来是(64-5+2*2)/2 + 1 = 32。
对G: 32*32*128->64*64*3
kernel是5*5,这边不适用上述公式,算法是中间插入了32-1=31条0(行,列都插入),周围再加2个padding,所以总长为32+31+2*2 = 67,(67-5)+1=64.
其他的都是类似的分析过程。

Tensorflow代码输出
这里写图片描述

原创粉丝点击