关于gan的流程理解
Posted lllcccddd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于gan的流程理解相关的知识,希望对你有一定的参考价值。
关于gan的流程理解,
最近再看cyclegan所以慢慢来看,最后了解了原理来跑代码就好
先说第一点:
架构
gan的架构就是两个重要的点:1 生成器 2 分辨器
生成器的作用就是生成假的图片
分辨器的作用就是在给一个正确的图片和一个生成的假的图片之后,他可以把正确的找出来
由此,其实我这里提出好多问题:
1 如何生成假的图片:反卷积
2 如何判断,好像是一个二分类,两个图片都给过去,<0.5就是假的,>0.5就是真的,当然这个0.x就是sigmoid(wx+b)(也就是距离的sigmoid值,)可是还是有问题,同时给两个图片吗?应该是给一个图片,然后算距离?不是,给两个图片,都算标定值的距离,两个物体只能二分类?
3 如何梯度下降?
带着这几个问题去读源码
面对第一个问题:如何生成图片,源码给出的解决方案是反卷积,
那么如何反卷积呢?
就是这样:
具体函数就一个:nn.ConvTranspose2d(ngf * mult, int(ngf * mult / 2),
kernel_size=3, stride=2,
padding=1, output_padding=1,
bias=use_bias),
首先的操作是:
1 进行卷积上图第一行 feature:4*4 filter: 2*2 stride: 2 得到结果:2*2
2 进行反卷积:首先第一步:
1 补0:让卷积后的结果,每一个元素后面都补(stride-1)个0 成为了 下左2
2 补0:对整体再补0,这个整体补0的个数是取决于补0之后,把卷积核完全颠倒过来,按照stride=1进行卷积,卷积之后要得到原始大小(上左一)的结果
以上是关于关于gan的流程理解的主要内容,如果未能解决你的问题,请参考以下文章