CycleGAN的原理及Pytorch实现

follow this video: https://www.youtube.com/watch?v=4LktBHGCNfw

paper: https://arxiv.org/pdf/1703.10593.pdf

 

只讲我关注到的,与Pix2Pix的区别之处

区别一:不需要成对匹配的数据

CycleGAN是两个集合的转换,不需要建立元素的一一映射

  

区别二:增加了cycle-consistency loss

 

 

 

 

 每种loss代表什么实际含义呢?

 

 GAN alone 和 GAN+forward 遭受了模式奔溃, 不管输入什么图片,产生相同的输出。

区别三:增加了identity loss

Lidentity有助于保持和输入图片一样的颜色,没有Lidentity时,生成器G和F会改变输入图片的色调当它们不需要时,例如把早上的图片映射成傍晚的图片,因为这同样满足adversarial loss和cycle consistency loss.

 

区别四:生成器有residual Blocks

生成器采用残差模块,虽然据说像Pix2Pix一样使用U-Net效果也不错;

识别器还是用PatchGAN,不过论文里输出是70 x 70,我实现上还是用 30 x 30;

 

 

 完整代码:https://github.com/growvv/GAN-Pytorch/tree/main/CycleGAN

posted @ 2021-05-31 23:36  Rogn  阅读(2011)  评论(0编辑  收藏  举报