gan

17种GAN变体的Keras实现

不羁岁月 提交于 2019-12-05 10:35:19
从2014年诞生至今,生成对抗网络(GAN)始终广受关注,已经出现了200多种有名有姓的变体。 这项“造假神技”的创作范围,已经从最初的手写数字和几百像素小渣图,拓展到了 壁纸级高清照片 、 明星脸 ,甚至 艺术画作 。 心痒难耐想赶快入门? 通过自己动手、探索模型代码来学习,当然是坠吼的~如果用简单易上手的Keras框架,那就更赞了。 一位GitHub群众eriklindernoren就发布了17种GAN的Keras实现,得到Keras亲爸爸François Chollet在Twitter上的热情推荐。 干货往下看: eriklindernoren/Keras-GAN AC-GAN 带辅助分类器的GAN,全称Auxiliary Classifier GAN。 在这类GAN变体中,生成器生成的每张图像,都带有一个类别标签,鉴别器也会同时针对来源和类别标签给出两个概率分布。 论文中描述的模型,可以生成符合1000个ImageNet类别的128×128图像。 paper: Conditional Image Synthesis With Auxiliary Classifier GANs Augustus Odena, Christopher Olah, Jonathon Shlens [1610.09585] Conditional Image Synthesis With

深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全

倾然丶 夕夏残阳落幕 提交于 2019-12-05 10:32:16
原文地址: Image Completion with Deep Learning in TensorFlow by Brandon Amos 原文翻译与校对: @MOLLY && 寒小阳 (hanxiaoyang.ml@gmail.com) 时间:2017年4月。 出处: http://blog.csdn.net/han_xiaoyang/article/details/70214565 声明:版权所有,转载请联系作者并注明出 简介 第一步:将图像理解为一个概率分布的样本 你是怎样补全缺失信息的呢? 但是怎样着手统计呢?这些都是图像啊。 那么我们怎样补全图像? 第二步:快速生成假图像 在未知概率分布情况下,学习生成新样本 [ML-Heavy] 生成对抗网络(Generative Adversarial Net, GAN) 的架构 使用G(z)生成伪图像 [ML-Heavy] 训练DCGAN 现有的GAN和DCGAN实现 [ML-Heavy] 在Tensorflow上构建DCGANs 在图片集上跑DCGAN 第三步:找到用于图像补全最好的伪图像 使用 DCGAN 进行图像补全 [ML-Heavy] 到 pgpg 的投影的损失函数 [ML-Heavy] 使用tensorflow来进行DCGAN图像补全 补全图像 结论 简介 内容识别填充(译注: Content-aware fill

如何用 TensorFlow 实现生成式对抗网络(GAN)

核能气质少年 提交于 2019-12-05 10:30:22
我们来研究一下生成式对抗网络 GAN,并且用 TensorFlow 代码实现。 自从 Ian Goodfellow 在 14 年发表了 论文 Generative Adversarial Nets 以来,生成式对抗网络 GAN 广受关注,加上学界大牛 Yann Lecun 在 Quora 答题时曾说,他最激动的深度学习进展是生成式对抗网络,使得 GAN 成为近年来在机器学习领域的新宠,可以说,研究机器学习的人,不懂 GAN,简直都不好意思出门。 下面我们来简单介绍一下生成式对抗网络,主要介绍三篇论文:1)Generative Adversarial Networks;2)Conditional Generative Adversarial Nets;3)Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks。 首先来看下第一篇论文,了解一下 GAN 的过程和原理: GAN 启发自博弈论中的二人零和博弈(two-player game),GAN 模型中的两位博弈方分别由生成式模型(generative model)和判别式模型(discriminative model)充当。生成模型 G 捕捉样本数据的分布,用服从某一分布(均匀分布,高斯分布等)的噪声 z

GAN学习指南:从原理入门到制作生成Demo

大憨熊 提交于 2019-12-05 10:27:14
转载自: http://geek.csdn.net/news/detail/134553?from=timeline 生成式对抗网络(GAN)是近年来大热的深度学习模型。最近正好有空看了这方面的一些论文,跑了一个GAN的代码,于是写了这篇文章来介绍一下GAN。 本文主要分为三个部分: 介绍原始的GAN的原理 同样非常重要的DCGAN的原理 如何在Tensorflow跑DCGAN的代码,生成如题图所示的动漫头像,附送数据集哦 :-) GAN原理介绍 说到GAN第一篇要看的paper当然是Ian Goodfellow大牛的Generative Adversarial Networks(arxiv: https://arxiv.org/abs/1406.2661 ),这篇paper算是这个领域的开山之作。 GAN的基本原理其实非常简单,这里以生成图片为例进行说明。假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是: G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。 D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。 在训练过程中,

DCGAN in Tensorflow生成动漫人物

蹲街弑〆低调 提交于 2019-12-05 10:26:37
引自: GAN学习指南:从原理入门到制作生成Demo 生成式对抗网络(GAN)是近年来大热的深度学习模型。最近正好有空看了这方面的一些论文,跑了一个GAN的代码,于是写了这篇文章来介绍一下GAN。 本文主要分为三个部分: 介绍原始的GAN的原理 同样非常重要的DCGAN的原理 如何在Tensorflow跑DCGAN的代码,生成如题图所示的动漫头像,附送数据集哦 :-) GAN原理介绍 说到GAN第一篇要看的paper当然是Ian Goodfellow大牛的Generative Adversarial Networks(arxiv: https://arxiv.org/abs/1406.2661 ),这篇paper算是这个领域的开山之作。 GAN的基本原理其实非常简单,这里以生成图片为例进行说明。假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是: G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。 D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。 在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D

pytorch:实现简单的GAN(MNIST数据集)

可紊 提交于 2019-12-05 10:22:45
# -*- coding: utf-8 -*- """ Created on Sat Oct 13 10:22:45 2018 @author: www """ import torch from torch import nn from torch.autograd import Variable import torchvision.transforms as tfs from torch.utils.data import DataLoader, sampler from torchvision.datasets import MNIST import numpy as np import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec plt.rcParams['figure.figsize'] = (10.0, 8.0) # 设置画图的尺寸 plt.rcParams['image.interpolation'] = 'nearest' plt.rcParams['image.cmap'] = 'gray' def show_images(images): # 定义画图工具 images = np.reshape(images, [images.shape[0], -1]) sqrtn =

生成式对抗网络GAN研究进展(五)——Deep Convolutional Generative Adversarial Nerworks,DCGAN

烂漫一生 提交于 2019-12-05 10:08:06
【前言】 本文首先介绍生成式模型,然后着重梳理生成式模型(Generative Models)中生成对抗网络(Generative Adversarial Network)的研究与发展。作者按照GAN主干论文、GAN应用性论文、GAN相关论文分类整理了45篇近两年的论文,着重梳理了主干论文之间的联系与区别,揭示生成式对抗网络的研究脉络。 本文涉及的论文有: Goodfellow Ian, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in Neural Information Processing Systems. 2014: 2672-2680. Denton E L, Chintala S, Fergus R. Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks[C]//Advances in neural information processing systems. 2015: 1486-1494. Radford A, Metz L, Chintala S. Unsupervised representation learning with deep

DCGAN论文阅读笔记

时间秒杀一切 提交于 2019-12-05 10:04:11
一.论文链接 DCGAN carpedm20/DCGAN-tensorflow 二.论文概要 提出了基于卷积拓扑网络的DCAGN,并且分析验证了卷积GAN的一些限制 将训练好的解码器用于分类,能达到挺好的效果 可视化GAN的一些层 三.论文细节 1) CNN的三个演进 generator中使用反卷积来上采样,discriminator中使用strided卷积来替代池化层,从而让网络自己去学习空间采样 global averaging pooling来替代全连接层,作者发现这一操作提升了模型的可靠性,但是会降低模型的收敛速度。 BN,加速收敛以及缓解梯度弥散。在GAN中直接应用的话会导致样本震荡以及模型不稳定,作者不在generator的输出层以及discriminator的输入层加BN来防止这个问题。 2) 网络结构 generator中,relu为激活函数,除了输出层是用的sigmoid函数。 使用bounded activation的帮助会更大一点,学的更快,能覆盖更多的训练分布中的颜色空间。 在discriminator中,作者使用leaky relu作为激活函数 3) 代码 conv_cond_concat(image, yb) ,其中yb的维度为[N,1,1,class_num], image的维度为[N,H,W,C],这个方法相当于把yb复制成维度为[N,H,W

深度卷积生成对抗网络--DCGAN

天涯浪子 提交于 2019-12-05 10:00:54
本问转自: https://ask.julyedu.com/question/7681 ,详情请查看原文 —— 前言 :如何把CNN与GAN结合?DCGAN是这方面最好的尝试之一,DCGAN的原理和GAN是一样的,这里就不在赘述。它只是把经典GAN中的G和D换成了两个卷积神经网络(CNN)。但是,并不是直接替换就可以了, DCGAN 对卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度。具体有哪些改变,将在本文中看到。 摘要 近年来,深度卷积神经网络(CNN)的监督学习在计算机视觉应用上发挥巨大的作用,然而CNN的非监督学习只受到较少的关注。在这项工作中我们希望有助于缩小CNN在监督学习和非监督学习成功的差距。我们提出了一种叫做深度卷积生成对抗网络的CNN,它具有一定的结构约束,展示了其在非监督学习方向上强有力的候选方案。通过在各种各样的图像数据集的训练,我们展示了令人信服的证据,我们的深度卷积对抗对(adversarial pair)从对象到场景在生成模型和判别模型上都能够学习到层级的表示。此外,我们在一些的新的任务上使用学习到的特征表明它们一般的图像表示上具有通用性。 引言 从大量未标记数据集中学习可重复使用的特征表示已经成为一个热门研究区域(been an area,一个地区,区域)。在计算机视觉背景下

生成对抗网络GAN系列(一)—— DCGAN

ぐ巨炮叔叔 提交于 2019-12-05 10:00:36
啊啊啊,又来吐槽面试了。某天下午,突然接到一个面试电话,你好,我是**公司的,请问你有10-20分钟的时间吗?接下来我们将进行一个面试。完全没有预料的好吗?自己一点准备也没有,边听问题边回忆好吗?想着怎么回答。当时看过的论文已经很久了,忘记了好吗?还记得当时面试官问我你知道DCGAN吗?你看过CycleGAN没有?我当时就没办法讲清楚那些论文所做的工作。另外还有一次问我看过的最新的工作是什么?有没有看过什么论文?我也不知道如何回答。说了一个CycleGAN,面试官说那都是去年的好吗?当时深深地意识到自己对前沿的关注力度还不够呀,即便我关注过,如果面试官让我在短时间内讲一讲论文的要点,恐怕我也没办法。我觉得做笔记还是很有必要的,现在就只有慢慢地填坑了。当然这只是第一步,第二步是你自己能不能根据论文复现别人的工作,注意是复现,而不是把别人share出来的代码直接跑一跑,复现真的很有帮助,会有助于你去弄懂论文中的每一个细节。之前试着去复现了一篇论文的工作,虽然遇到了一点问题卡住了,但是真的学到了很多东西,明显感觉自己进步了,但是还是有很长的一段路要走啊。好了,先回到DCGAN这里来。 DCGAN全名是deep convolutional generative adversarial networks。 先介绍一下背景,从大量没有标记的数据集中学习到可以利用的特征表示是一个活跃的研究领域