LSTM层input_shape

时间:2020-04-11 08:12:55

标签: keras lstm recurrent-neural-network

我的输入数据具有以下形状:

5395  69   1

我的输入形状应该是:

69,1或

1,69?

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

1 个答案:

答案 0 :(得分:1)

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

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

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


作为旁注,我可能是错的,但是我感觉到您在LSTM层中混合了输入时间步长和单位/神经元的数量(具体来说,我指的是您的这一句话:“ LSTM层中有69个神经元...”)。这两个彼此无关,并且它们不一定必须是相同的数字。 LSTM层中单位/神经元的数量决定了该层的表示能力,应根据实验/经验进行相应设置。 This answer会进一步说明这一点。