ValueError: 层 lstm_12 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4

Posted

技术标签:

【中文标题】ValueError: 层 lstm_12 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4【英文标题】:ValueError: Input 0 of layer lstm_12 is incompatible with the layer: expected ndim=3, found ndim=4 【发布时间】:2022-01-06 21:24:51 【问题描述】:

我正在研究 seq2seq 模型,我想使用Keras Blog Bonus FAQ 中给出的嵌入层。这是我的代码,其中 num_encoder_tokens 是 67,num_decoder_tokens 是 11。

我遇到了如图所示的问题。

谁能帮我重塑嵌入层的输出形状或 LSTM 的输入形状,因为我不知道该怎么做。

【问题讨论】:

回答有用吗? 【参考方案1】:

您的输入应该是:

encoder_inputs = keras.Input(shape=(None,))

decoder_inputs = keras.Input(shape=(None,))

这将允许您拥有可变的输入长度。

【讨论】:

以上是关于ValueError: 层 lstm_12 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:输入 0 与层 lstm_13 不兼容:预期 ndim=3,发现 ndim=4

ValueError:输入 0 与层 lstm_1 不兼容:预期 ndim=3,发现 ndim=2 [keras]

ValueError:检查输入时出错:预期 lstm_1_input 具有 3 个维度,但得到的数组具有形状 (393613, 50)

ValueError:检查输入时出错:预期 lstm_16_input 有 3 个维度,但得到的数组形状为 (836, 400, 3, 1)

Keras 功能 api 输入形状错误,lstm 层收到 2d 而不是 3d 形状

ValueError:lstm_45 层的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到的完整形状:(无,无,无,128)