如何正确设置LSTM层的input_shape?

Dav*_*íaz 4 lstm keras recurrent-neural-network

我有一个具有以下形状的输入数据:(5395, 69, 1)

我的 input_shape 应该是:

  • (69,1)或者

  • (1,69)

LSTM 层中有 69 个神经元,我在第一个 input_shape 中获得 19'596 个参数进行训练,而在第二个 38'364 个参数中,这些不是分别作为输入 1 和 69 个值获取的结果吗?我的问题是我应该输入 1 因为我有 1 个特征,还是应该输入 69 因为我有 69 个时间步长,为什么?

tod*_*day 10

层的输入的LSTM形状为(num_timesteps, num_features),因此:

  • 如果每个输入样本有 69 个时间步长,其中每个时间步长由 1 个特征值组成,则输入形状将为(69, 1)

  • 如果每个输入样本都是 69 个特征值的单个时间步长,那么使用 RNN 层可能根本没有意义,因为输入基本上不是序列。相反,最好将输入样本展平(即重塑(1, 69)(69,)),然后使用其他连接架构/层(例如Dense)。


顺便说一句,我可能是错的,但我有一种感觉,你正在混合输入时间步数和 LSTM 层中的单元/神经元数量(具体来说,我指的是你的这句话:“With 69 个神经元在 LSTM 层中......”)。这两者没有任何关系,也不一定是同一个数字。LSTM 层中的单元/神经元数量决定了该层的表示能力,应根据实验/经验进行相应设置。如果您有兴趣,这个答案会进一步解释这一点。