首页 > 解决方案 > Keras 输出到模型的张量必须是 TensorFlow `Layer` 的输出

问题描述

我正在创建我的模型:

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)

因此,引发此错误是没有意义的。

标签: pythontensorflowkeras

解决方案


事实证明,在我的代码中的其他地方创建模型时,实际上是引发了这个错误。我已经处理这个模型很长时间了,我什至没有意识到。


推荐阅读