1.5 条件生成对抗网络(CGAN)

本文介绍了条件生成对抗网络(CGAN),其中生成器学习为每个标签生成逼真样本,鉴别器则区分真实与伪造的样本-标签对。详细阐述了生成器和鉴别器的工作原理,并提供了CGAN的TensorFlow实现,包括模型构建和训练过程,最后展示生成的图像。
摘要由CSDN通过智能技术生成

1.什么是CGAN

       在CGAN训练期间,生成器学习为训练数据集中的每个标签生成逼真的样本,而鉴别器则学习区分真的样本-标签对与假的样本-标签对。只学习接受真实且样本-标签匹配正确的对,拒绝不匹配的对和样本为假的对。

2.生成器

 条件标签称为y,生成器使用噪声向量Z和标签y合成一个伪样本。

3.鉴别器

 接受带标签的真实样本(x,y),以及生成器生成的伪样本

 

4.代码实现 

      4.1导入数据库

%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np

from keras.datasets import mnist
from keras.layers import (Activation, BatchNormalization, Concatenate, Dense,
                          Embedding, Flatten, Input, Multiply, Reshape)
from keras.layers.advanced_activations import LeakyReLU
from keras.layers.convolutional import Conv2D, Conv2DTranspose
from keras.models import Model, Sequential
#此处如果报错,就将下面改为from keras.optimizer_v2 import adam as Adam
from keras.optimizers import Adam

      4.2模型的输入维度

img_rows = 28
img_cols = 28
channels = 1

# 输入图像的维度
img_shape = (img_rows, img_cols, channels)

# 噪声向量的大小,用作生成器的输入
z_dim = 100

# 数据集中的类别数
num_classes = 10

       4.3CGAN生成器

def build_generator(z_dim):

    model = Sequential()

    # 通过全连接层将输入变为7*7*256的张量
    model.add(Dense(256 * 7 * 7, input_dim=z_dim))
    model.add(Reshape((7, 7, 256)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值