【问题标题】:Keras LSTM error: Input from layer reshape is incompatible with layer lstmKeras LSTM 错误:来自层重塑的输入与层 lstm 不兼容
【发布时间】:2018-04-14 16:42:55
【问题描述】:

使用 RapidMiner 我想实现一个 LSTM 来对时间序列中的模式进行分类。输入数据是一个平面表。我在 Keras 算子中的第一层是从 exampleset_length x nr_of_attributes 到 batch x time-steps x features 的核心重塑。在重塑参数中,我特别输入了三个数字,因为我想要特定数量的特征和时间步长。实现这一点的唯一方法是同时指定批量大小,因此总共三个数字。但是当我添加一个 RNN LSTM 层时,会返回一个错误:输入与层 lstm 不兼容,预期 ndim=n 发现 ndim=n+1。怎么了?

【问题讨论】:

    标签: keras rapidminer


    【解决方案1】:

    为 LSTM 层指定“input_shape”时,不包括批量大小。

    所以你的“input_shape”值应该是(timesteps, input_dim)。

    Source: Keras RNN Layer, the parent layer for LSTM

    【讨论】:

    • 您的回答符合 Keras 文档。然而,RapidMiner 中的 Reshape 算子包含一个验证。如果 Reshape 的 input_shape 和 output 的大小不同,则会显示以下错误:“Python 脚本执行失败。ValueError:新数组的总大小必须保持不变。”要消除此错误,唯一的选择是将 N x M 重塑为 M x N。这将导致时间步长与初始示例集中的示例数量相等。这不是我想要的。
    最近更新 更多