代码实例:教你实现infoGAN

本文通过代码实例详细讲解如何利用TensorFlow实现infoGAN。infoGAN是一种生成对抗网络,其判别器接受真实样本和生成样本,经过卷积和全连接层后,产生分类和隐含维度信息的输出。通过评估损失函数loss_d和loss_g,成功训练并展示生成结果。
摘要由CSDN通过智能技术生成
实例:构建infoGAN生成MNIST模拟数据
本例演示在MNISTt数据集上使用infoGan网络模型生成模拟数据,并且加入标签信息的loss函数同时实现了AC-GAN的网络。其中的D和G都是用卷积网络来实现的,相当于DCGAN上面的infoGAN例子。
案例描述
通过使用InfoGAN网络学习MNIST数据特征,生成以假乱真的MNIST模拟样本,并发现内部潜在特征信息。
具体实现可以分为如下几个步骤:
1. 引入头文件并加载MNIST数据
假设MNIST数据放在本地磁盘跟目录的data下。本例中将使用前面介绍的slim模块构建网络结构,所以需要引入slim。当然也可以不用slim,引入slim的目的就是为了编写代码比较方便,不用考虑输入维度即相关权重的定义。最主要是slim还对反卷积有封装,下文会用到。

代码12-1  Mnistinfogan


2.网络结构介绍
建立2个噪声数据(一般噪声和隐含信息)与label结合放到生成器中,生成模拟样本,然后将模拟样本和真实样本分别输入到判别器中,生成判别结果,重构造的隐含信息,还有样本标签。
在优化时,让判别器对真实的判别结果为1,对模拟数据的判别结果为0来做loss。对生成器让判别结果为1来做loss。
3.定义生成器与判别器
由于是先从模拟噪声数据来恢复样本,所以在生成器中。要使用反卷积函数。这里通过2个全连接࿰
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值