我有一个神经网络,它可以接收500px x 500px的RGB彩色图像,也可以输出另一幅相同尺寸的图像。
下面是我的网络结构:
Generative_Model = Sequential([
Conv2D(32, (6, 6), padding="same", name="generative", input_shape=(500,500, 3), data_format="channels_last")
PReLU(alpha_initializer='zeros'),
Conv2D(3, (3, 3), padding="same"),
PReLU(alpha_initializer='zeros', name="outp1"),
])我遇到的问题是,出来的维度是None,500,500,3,虽然我期望它们是500,500,3,但我不确定额外的维度是从哪里来的。
重要的是,在离开网络之前删除维度,因为这将馈送到第二个敌对网络。
下面是我打印model.summary()时得到的结果

我已经尝试在最后添加一个重塑,以迫使网络删除最后一个维度,但它似乎不起作用,因为输出形状似乎保持不变。
发布于 2019-05-02 23:08:24
在与@Dodge聊天时,他向我指出了以下文档:
https://www.tensorflow.org/api_docs/python/tf/keras/layers/Reshape
这说明附加的无来自于批次长度。我需要将第一个网络的输出输入到第二个网络的输出中,第二个网络预计不会有批处理维度,所以我使用第一个网络之外的重塑将其删除,如下所示:
#Adversierial network which is comprised of a generator network and a discriminator network.
self.model = Sequential([
Gen_Input, # Generator Network
Reshape((500, 500, 3), input_shape=(500, 500, 3)),
discriminative_model.Input # Discriminator Network
])这允许我从图形内部重塑输出。
https://stackoverflow.com/questions/55955044
复制相似问题