使Keras模型输出一定形状的常数

时间:2018-07-10 11:07:29

标签: tensorflow keras

我想要一个Keras模型,该模型始终输出所需输出形状的恒定值。

def build_model(input_shape, output_shape)
    input = tf.keras.layers.Input(shape=(512,512,3))
    x = tf.keras.backend.constant(1, shape=output_shape)
    output = tf.keras.layers.Lambda(lambda x: x)(x)
    model = Model(inputs=input, outputs=output)
    return model

model = build_model((512,512,3), (512,512,32))

我收到以下错误:

模型的输出张量必须是TensorFlow Layer的输出(因此保留过去的层元数据)。找到:Tensor(“ Const_3:0”,shape =(512,512,32),dtype = float32)

我该如何解决?

更新

输入和输出确实未连接。我想以最低的GPU负载测试我的处理管道的性能。我认为始终不进行任何计算就输出相同的值不会过多地使用GPU。但是我仍然要确保我的数据已正确加载(输入层)。

1 个答案:

答案 0 :(得分:1)

问题是确实需要连接输出和输入。我不能使用激活层,因为输出的形状应该与输入的形状不同。因此,我最终将输入连接11次,并再次对其进行切片,以得到具有0个可训练参数的正确形状的输出。

最终的模型构建功能如下:

std::make_shared<>