1.1.GAN-学习生成手写数字

第一次写博客,希望大家担待,一起学习,一起进步!

1.导入模块并且指定模型输入维度

%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np

from keras.datasets import mnist
from keras.layers import Dense, Flatten, Reshape
from keras.layers.advanced_activations import LeakyReLU
from keras.models import Sequential
from keras.optimizer_v2 import adam as Adam

此处是直接从keras中直接导入的mnist手写数据集

提醒大家注意一下那个优化器导入的时候后面有个_v2,我最开始没有注意到这个,一直报错。

2.模型输入维度

img_rows = 28
img_cols = 28
channels = 1

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

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

mnist数据集中每张图片都是28*28像素的单通道图像。

3.生成器

def build_generator(img_shape, z_dim):

    model = Sequential()

    # 全连接层
    model.add(Dense(128, input_dim=z_dim))

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

    # 带有tanh函数的激活层
    model.add(Dense(28 * 28 * 1, activation='tanh'))

    # 将生成器的输出改变为图像尺寸
    model.add(Reshape(img_shape))

    return model

这个生成器只有一个隐藏层的神经网络。此处使用的是LeakyReLU激活函数,它的好处是存在一个小的正梯度,这样可以防止梯度在训练中消失。在输出层使用tanh而不是使用sigmoid。

4.鉴定器

def build_discriminator(img_shape):

    model = Sequential()

    # 将输入图像展平
    model.add(Flatten(input
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值