Skip to content

siyiwu0330/GAN_learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GAN_learning

自己跑了一些比较经典的GAN模型,其中加入了部分修改

GAN发展概览

一图GAN

DCGAN

DCGAN基本完全照搬PyTorch官方文档的代码,只在数据处理部分进行了修改。DCGAN的结构如下所示,其主要贡献是对生成器以及判别器的网络模型做了修改,使用卷积神替换掉了全连接。

image

[DCGAN code]


dcgan损失函数

image


dcgan生成效果

image

WGAN

WGAN

WGAN在DCGAN的基础上增加了原始的WGAN改进,包括:

  • 取消掉了判别器最后一层的sigmod
  • 对生成器和判别器的损失函数做了修改,不取log
  • 使用一个clip对每次参数更新的结果做出了一定的截取
  • 优化器改用了RMSProp

[WGAN code]


wgan损失函数

image


wgan生成效果

image

WGAN-gp

WGAN-gp在WGAN的基础上又做了更改,舍弃clip转而采用gradient penalty(梯度惩罚)

[WGAN-gp code]


wgan-gp损失函数

image


wgan-gp生成效果

image

WGAN-div

WGAN-div在WGAN-gp的基础上做出改进,对梯度惩罚的计算方式做出了改进,引入了Wasserstein Divergence(Wasserstein散度)

[WGAN-div code]


wgan-div损失函数

image


wgan-div生成效果

image

PGGAN

PGGAN的核心理念是将让成器和分类器一步步放大图像的尺寸,从4×4最后放大到1024×1024。生成器和分类器也是放大一次增加一个block。而这个block的设计也是参考了resnet,因为突然放大会导致模型不稳定,用这种方法可以平滑过渡。

image

image

CycleGAN

CycleGAN通过增加一个生成网络将生成数据还原为原本数据并计算还原后的数据与原数据相似度的方法,为生成器的生成做出一定限制,实现了无监督风格迁移的模型训练。

这里推荐李宏毅老师的cycleGAN讲解:https://www.youtube.com/watch?v=wulqhgnDr7E

[CycleGAN code]

image


cyclegan损失函数

image


cyclegan生成效果

10000

主要参考

代码参考:

Pytorch DCGAN的官方文档: https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html

eriklindernoren/PyTorch-GAN: https://github.com/eriklindernoren/PyTorch-GAN

rosinality/progressive-gan-pytorch: https://github.com/rosinality/progressive-gan-pytorch

使用数据集:

数据集使用kaggle用户提供的数据:

anime-faces: https://www.kaggle.com/soumikrakshit/anime-faces

selfie2anime: https://www.kaggle.com/arnaud58/selfie2anime

About

一些不同类型GAN的demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages