DCGAN的原文里面给出的结构如下:
DCGAN结构解读

这是G的结构,而D则是完全相反的:
DCGAN结构解读

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

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

  • regular convolution
    输入大小为i,stride为s,padding为p,kernel为k,输出大小为o,则
    DCGAN结构解读
    DCGAN结构解读
    (i=6, s=2, p=1, 0=3)
  • fractionally-strided convolution
    o′=s(i′−1)+k−2p
    DCGAN结构解读

其实相当于在输入中间插入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代码输出
DCGAN结构解读

相关文章:

  • 2021-08-12
  • 2021-12-05
  • 2021-06-15
  • 2021-07-31
  • 2022-12-23
  • 2021-07-03
猜你喜欢
  • 2022-01-03
  • 2022-01-21
  • 2021-12-30
  • 2021-07-11
  • 2021-07-25
  • 2021-12-21
  • 2021-07-11
相关资源
相似解决方案