1.2.深度卷积生成对抗网络(DCGAN)

本文介绍了如何使用卷积神经网络构建深度卷积生成对抗网络(DCGAN),并应用于MNIST数据集。在生成器中,通过转置卷积将向量转换为图像,批归一化提升训练稳定性。鉴别器同样采用卷积结构,整个模型的训练过程与标准GAN相似。最终,展示并运行了训练得到的DCGAN模型。
摘要由CSDN通过智能技术生成

第一节是只用了一个隐藏层,这节生成器和鉴定器都将使用卷积神经网络,看看会不会产生不一样的结果。

1.导入训练和训练模型所需的所有包,模块以及库。

%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np

from keras.datasets import mnist
from keras.layers import Activation, BatchNormalization, Dense, Dropout, Flatten, Reshape
from keras.layers.advanced_activations import LeakyReLU
from keras.layers.convolutional import Conv2D, Conv2DTranspose
from keras.models import Sequential
from keras.optimizer_v2 import adam as Adam

此节也是使用的mnist数据集,可以直接从keras.datasets中导入mnist数据集。

2.模型维度的输入

img_rows = 28
img_cols = 28
channels = 1

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

# 噪声向量Z的长度
z_dim = 100

3.构造生成器

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)))

    # 通过转置卷积层将7*7*256的张量转换为14*14*128的张量
    model.add(Conv2DTranspose(128, kernel_size=3, strides=2, padding='same'))

    # 批归一化
    model.add(BatchNormalization())

    # Leaky ReLU 激活函数
    model.add(LeakyReLU(alpha=0.01))

    # 通过转置卷积层将14*14*128的张量转换为14*14*64的张量
    model.add(Conv2DTranspose(64, kernel_size=3, strides=1, padding='
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值