DCGAN实现手写体

DCGAN实现手写体

构建生成器网络

和gan一样,设置图像维度为(28,28,1),生成器输入维度为(100,)

from tensorflow.keras.layers import Input

img_rows = 28
img_cols = 28
channels = 1
img_shape = (img_rows,img_cols,channels)
latent_dim = 100
generator_input = Input(shape=(latent_dim ,))

接着将输入转换成7×7大小128个通道的特征图feature map

from tensorflow.keras.layers import Dense,Reshape

x = Dense(128*7*7,activation="relu",)(generator_input)
x = Reshape((7,7,128))(x)

此处的DCGAN是和GAN最大的不同,这里的DCGAN使用了微步幅卷积或上采样进行图像放大。这里采用Keras的UpSampling2D层对输入进行上采样

from tensorflow.keras.layers import UpSampling2D

x = UpSampling2D()(x)

然后添加卷积层,设置filters为128,kernel_size 为 3,padding 为 same,使得输出维度和输入维度相同。这里的Keras 中使用 Conv2D 方法调用卷积层

from tensorflow.keras.layers import Conv2D

x = Conv2D(128, kernel_size=3, padding='same')(x)

添加 BatchNormalization 层和 Activation 层。将 ReLU 激活函数通过 Activation 层应用于输出

from tensorflow.keras.layers import BatchNormalization, Activation

x = BatchNormalization(momentum=0.8)(x)
x = Activation("relu")(x)

添加更多的层

x = UpSampling2D()(x)
x = Conv2D(64, 3, padding='same')(x)
x = BatchNormalization(momentum=0.8)(x)
x = Activation("relu")(x)

构建输出层,生成一个大小为 28×28 的单通道特征图,使用 Tanh 激活函数

x = Conv2D
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值