Python 为什么生成的图像与此GAN中的真实图像具有不同的形状?

Python 为什么生成的图像与此GAN中的真实图像具有不同的形状?,python,numpy,keras,shapes,generative-adversarial-network,Python,Numpy,Keras,Shapes,Generative Adversarial Network,我有一个生成性对抗网络(GAN)Keras代码,如下所示。我的列车目录由512x512x3图像组成。为什么print语句返回以下内容?如何使生成的图像也具有形状(374、512、512、3) 这是生成的图像的形状(374、32、32、3) 这是真实图像的形状(374、512、512、3) 谢谢。代码中的注释提示解决方案: #向上采样至32x32和 生成32x32单通道特征图(即图像形状) 通过向生成器中添加更多的conv2dtranpse层,可以将采样增加到更大的图像大小 我注意到,为了使生成的

我有一个生成性对抗网络(GAN)Keras代码,如下所示。我的列车目录由
512x512x3
图像组成。为什么print语句返回以下内容?如何使生成的图像也具有形状
(374、512、512、3)

这是生成的图像的形状(374、32、32、3)

这是真实图像的形状(374、512、512、3)


谢谢。

代码中的注释提示解决方案:
#向上采样至32x32
生成32x32单通道特征图(即图像形状)


通过向生成器中添加更多的
conv2dtranpse
层,可以将采样增加到更大的图像大小

我注意到,为了使生成的图像大小为
512x512
,可以编辑以下语句:

x = layers.Dense(128*256*256)(generator_input)

x = layers.Reshape((256,256,128))(x)

主要是因为当直接在全分辨率图片上训练时,vanilla GAN不起作用。看看这个谢谢你的回复。如果我再次添加以下语句,例如“x=layers.Conv2D(channels,7,activation='tanh',padding='same')(x)”,则不会发生任何更改。也许你有办法增加图像的大小?
x = layers.Dense(128*256*256)(generator_input)

x = layers.Reshape((256,256,128))(x)