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)