模型的Keras输出张量必须是TensorFlow`Layer`的输出

时间:2019-06-03 20:16:07

标签: python tensorflow keras

我正在这样创建我的模型:

inpt = tf.keras.layers.Input(shape=(None, None, 1))
output = inpt
...
output = tf.keras.layers.Conv2D(filters=1, kernel_size=3, padding='same')(inpt)
model = tf.keras.models.Model(inpt, output)

我一直看到标题中的错误,即输出张量必须是Tensorflow层的输出。我在源代码中查找了此错误,当输出不具有_keras_history属性时会引发该错误。

在创建模型之前,我尝试打印出output._keras_history并获取输出:

(<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7fe6701bf128>, 0, 0)

因此出现此错误是没有意义的。

1 个答案:

答案 0 :(得分:0)

事实证明,在我的代码的其他位置创建模型时,实际上是在引发此错误。我一直在处理这种模型很长时间,甚至没有意识到。