DCGAN结构解读
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代码输出 : 来源: CSDN