什么是cyclegan

cyclegan在解决什么问题?
在生成对抗网络中,有一个难点需要被关注。传统的GAN需要成对的数据训练,想要训练出一个结果,那么数据集必须要包含相对应的源域和目标域,如下图左侧:

但是获取这些成对的数据是非常困难的,为了解决这个问题,cyclegan应运而生。现在我只有源于和目标域不成对的数据,如上图右侧,那么利用cyclegan也可以做到域的转换。

原理

整个cyclegan分三大模块对应三部分损失(代码是四部分,后续再说),生成器Gab由A域生成B域,生成Gba由B域生成A域,判别器Db判断是否为B域的数据。对于上图,源域A是斑马,目标域B是普通马,也就是输入斑马输出对应的普通的马。上图红线的左边其实就是一个普通的GAN,先生成目标域B fake普通马,在进行对抗学习。cyclegan的贡献主要在右边,得到fake普通马后,再通过一个生成器还原出 假斑马,那么就希望此时的假斑马和输入的真斑马具有一致性,这就要通过loss来约束。

训练



在训练时会用到一个巧妙地技巧,既然我现在有了Gab,Gba还有A,B两个域的数据集,那么是不是我通过调换两个数据集可以再次训练的我的网络。假设先不看判别器,我现在的模型是 A斑马→Gab→fake B普通马→Gba→fake A斑马,通过损失约束fake A斑马和A斑马。那么是不是, B普通马→Gba→fake A斑马→Gab→fake B普通马,通过损失约束fake B普通马和B普通马也是work的。那么只需要再加一个判别器Da就可以实现双倍训练的效果!

同时在源码里还有一个loss没有在论文中提到。对于生成器,假设输入B经过Gab我希望输出B‘和B应该是一致的,所以在这里还会有loss约束,对于Gba也是同理。

结果

第一次跑GAN结果真的有些震撼,我自己收集了山水画和自然风景的数据集各1000张,训练了150次结果如下



神奇的cyclegan!相关推荐

  1. CycleGAN作者朱俊彦宣布重返CMU,担任助理教授

    安妮 发自 凹非寺 量子位 出品 | 公众号 QbitAI AI领域年轻学者朱俊彦,即将有新的职位调动. 几个小时前,朱俊彦在推特上宣布,在UC伯克利和MIT CSAIL度过了美好时光之后,将于202 ...

  2. 如何利用CycleGAN实现男女性别转换

    介绍 CycleGAN网络具有很强大的风格迁移功能.能够实现非常深层次的风格转换.比如男性图片女性化或者女性图片男性化. 先上效果图: 下面简单谈一谈实现原理. 网络结构 网络结构如图所示,通过两个循 ...

  3. CycleGAN:图片风格,想换就换 | ICCV 2017论文解读

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  4. CycleGAN 各种变变变

    转载自 简单介绍了一下GAN和DCGAN的原理.以及如何使用Tensorflow做一个简单的生成图片的demo. Ian Goodfellow对GAN一系列工作总结的ppt,确实精彩,推荐:独家 | ...

  5. CycleGAN与pix2pix不得不玩的模型

    CycleGAN是在去年三月底放在arxiv的一篇文章,文章名为Learning to Discover Cross-Domain Relations with Generative Adversar ...

  6. cycleGAN改写自己的dataloader 数据集是infant brain mri

    目录 突然发现除了6月,其他月份都没有分割结果!!! 先处理出数据集 268个人 每个人取131-150片 看github给的说明 看colab给的说明 整体思路 -读取文件 -写入dataloade ...

  7. 一段神奇的c代码错误分析

    源代码 #include <stdio.h>int main(int argc, char* argv[]) {int i = 0;int arr[3] = {0};printf(&quo ...

  8. python deque双端队列的神奇用法

    python中的deque双端队列,类似list的任意一端都可实现较快的add和pop操作 from collections import dequed=deque(maxlen=20) for i ...

  9. 几行代码实现神奇移动的过渡动画

    1.效果如图: 2.实现: 假设需求为如上图,点击ViewController01后,ViewController01上的两张图片,移动到ViewContoller02中,其实两个ViewContro ...

最新文章

  1. [ CodeVS冲杯之路 ] P1116
  2. DevExpress 使用 XtraTabbedMdiManager 控件以 Tab样式加载 Mdi窗体并合并 RibbonControl 解决方案
  3. java mysql 自动提交_Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧...
  4. BIM技术在地铁中应用
  5. 你没有权限在此位置中保持文件 java_Java路径问题解决方案收集
  6. leetcode18. 四数之和
  7. java元数据是什么_用存储过程和 JAVA 写报表数据源有什么弊端?
  8. 腾讯225页报告:AI正取代互联网成为新引擎,马化腾提七大关键词
  9. cd4017引脚图及功能_芯片CD4017解析
  10. js怎么获取当前日期
  11. 百度竞价数据分析技巧!
  12. web资源分享(视频、资料)
  13. 【六足】关于六足机器人运动学正逆解
  14. C# 二维码 生成、解析
  15. mars3d-热力图
  16. 使用Envato Elements Sketch插件立即创建惊人的原型
  17. tewa-800g请输入正确的管理员账户_tp-link路由器如何设置管理员身份绑定 路由器设置管理员身份绑定方法【介绍】...
  18. python 是世界上最好的语言!!! (狗头保命)
  19. 网易2017内推笔试题--小易老师的疯狂数列
  20. 布尔运算 : ^(异或运算XOR)、(与运算AND)、|(或运算OR)、 、~(非门NOT)

热门文章

  1. docker的privileged 与 k8s的privileged 设置方式
  2. 防止私自接交换机_【s5700交换机】防止用户私设IP
  3. kpu.h文件研究(完善中)
  4. 华为od机考真题-快速人名查找
  5. K-Means(K均值)、GMM(高斯混合模型),通俗易懂,先收藏了!
  6. 推荐系统——利用用户行为数据
  7. 激光器仿真:(7)半导体+波导混合锁模激光器
  8. 2017-2018-1 20155222 《信息安全系统设计基础》第13周学习总结
  9. 垃圾箱清空的文件怎么恢复,怎么恢复回收站清空的文件
  10. BTT、BZZ、IPFS都是分布式存储到底有何区别?一文读懂