tf.keras遇见的坑:Output tensors to a Model must be the output of a TensorFlow `Layer`

Posted jqpy1994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tf.keras遇见的坑:Output tensors to a Model must be the output of a TensorFlow `Layer`相关的知识,希望对你有一定的参考价值。

经过网上查找,找到了问题所在:在使用keras编程模式是,中间插入了tf.reshape()方法便遇到此问题。 

解决办法:对于遇到相同问题的任何人,可以使用keras的Lambda层来包装张量流操作,这是我所做的:

embed1 = keras.layers.Embedding(10000, 32)(inputs)
 
# embed = keras.layers.Reshape(-1,256, 32, 1)(embed1)
# embed = tf.reshape(embed1, [-1, 256, 32, 1])
def reshapes(embed1):
    embed = tf.reshape(embed1, [-1, 256, 32, 1])
    return embed
embed = keras.layers.Lambda(reshapes)(embed1)

 

以上是关于tf.keras遇见的坑:Output tensors to a Model must be the output of a TensorFlow `Layer`的主要内容,如果未能解决你的问题,请参考以下文章

tf.keras.layers.GRU理解

tf.keras.Input

Tensorflow RNN LSTM 输出解释

tf.keras 和 tf.python.keras 有啥区别?

不能将tf.keras.optimizer与tf.keras.models.sequential一起使用

tf.keras 模型 多个输入 tf.data.Dataset