【发布时间】:2019-10-16 22:38:00
【问题描述】:
我试图了解对抗性生成网络是如何工作的:我在 François Chollet(使用 Python 进行深度学习)的书中找到了一个示例,其中有一个 GAN 示例,他使用 CIFAR10 数据集,使用“frog” ' 包含 32x32 RGB 图像的类。
我不明白为什么:
- 在 (1) 中,输入被转换为 16 × 16 128 通道(为什么是 128 通道?)特征图
- 在 (2) 中,当进行卷积时,使用哪个滤波器?未指定
接下来,运行另一个 Conv2DTranspose,然后运行另一个 3 Conv2d。为什么?!
最后,我有一个 32 × 32 的 1 通道特征图。
from keras import layers
import numpy as np
latent_dim = 32
height = 32
width = 32
channels = 3
generator_input = keras.Input(shape=(latent_dim,))
(1)
x = layers.Dense(128 * 16 * 16)(generator_input)
x = layers.LeakyReLU()(x)
x = layers.Reshape((16, 16, 128))(x)
(2)
x = layers.Conv2D(256, 5, padding='same')(x)
x = layers.LeakyReLU()(x)
x = layers.Conv2DTranspose(256, 4, strides=2, padding='same')(x)
x = layers.LeakyReLU()(x)
x = layers.Conv2D(256, 5, padding='same')(x)
x = layers.LeakyReLU()(x)
x = layers.Conv2D(256, 5, padding='same')(x)
x = layers.LeakyReLU()(x)
x = layers.Conv2D(channels, 7, activation='tanh', padding='same')(x)
generator = keras.models.Model(generator_input, x)
generator.summary()
【问题讨论】:
标签: machine-learning deep-learning artificial-intelligence generative-adversarial-network