我发现了一个关于艺术生成的文章,它使用GAN建筑来生成艺术。让我们移到定义生成器模型的部分。
def build_generator(noise_size, channels):
model = Sequential()
model.add(Dense(4 * 4 * 256, activation=”relu”, input_dim=noise_size))
model.add(Reshape((4, 4, 256)))
model.add(UpSampling2D())
model.add(Conv2D(256, kernel_size=3, padding=”same”))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation(“relu”))
model.add(UpSampling2D())
model.add(Conv2D(256, kernel_size=3, padding=”same”))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation(“relu”))
for i in range(GENERATE_RES):
model.add(UpSampling2D())
model.add(Conv2D(256, kernel_size=3, padding=”same”))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation(“relu”))
model.summary()
model.add(Conv2D(channels, kernel_size=3, padding=”same”))
model.add(Activation(“tanh”))
input = Input(shape=(noise_size,))
generated_image = model(input)
return Model(input, generated_image)我理解为什么我们增加对4x4x256(model.add(Dense(4 * 4 * 256, activation=”relu”, input_dim=noise_size)))的输入,但是生成器返回形状为4x4x256的图像。如何处理这个图像?到底怎么回事?我认为,我们只能处理灰色(1通道)图像和RGB图像(3通道)。
发布于 2021-01-27 13:26:23
数字4与通道数无关,而只是用于定义潜伏空间的维数(总计为2048,4 x 4 x 256)。该发生器输出形状为(128, 128, 3)的图像,图像的高度和宽度为128个像素,图像有3个通道。在定义生成器的最后一层Conv2d层时可以看到这一点:
model.add(Conv2D(channels, kernel_size=3, padding="same"))该层的通道/过滤器的数量由channels变量定义,该变量是build_generator函数的参数。稍后调用此函数时,可以看到所提供的值是IMAGE_CHANNELS,在本文开头设置为3。
尽管如此,它是有可能的工作图像与4个渠道。这些图像除了红色、绿色和蓝色(RGBA)外,还有一个第四维。
https://datascience.stackexchange.com/questions/88547
复制相似问题