Keras LSTM:批次大小等于xt中的t吗?

时间:2020-01-25 19:13:02

标签: tensorflow keras lstm

我知道已经有很多问题要解决,但是我找不到明确的答案。 这enter image description here是否正确?取自Understanding Keras LSTMs。批量大小是否与此图片中的enter image description here对应为5(0-4)?取自http://colah.github.io/posts/2015-08-Understanding-LSTMs/。像这样的keras行:

model.add(LSTM(units, batch_input_shape=(batch_size, n_time_steps, n_features), stateful=False))

请注意statefull = False, 所以一个输入向量(一个蓝色气泡)的大小为n_time_steps * n_features,对吗?

1 个答案:

答案 0 :(得分:0)

为了使您的理解清楚,在您提到的第一张图像中的batch_input_shape = (batch_size,time_steps,n_features)将表示为batch_input_shape = (batch_size,4,3)。在第二个图像中,它将是batch_input_shape = (batch_size,5,1)
在两张图片中均未显示批次大小,因此请不要在这里对批次大小感到困惑。

下面可以更好地理解这些尺寸。 enter image description here

对于Stateful = True,模型期望输入按顺序排列,即不混洗,不重叠。
在这种情况下,您需要先修复batch_size。

  • 如果数据较小,则可以将batch_size设置为1(在大多数情况下)
  • 如果数据很大,则可以为batch_size设置任何数字,并将数据拆分为相同数量的批次,这样,在下一次迭代开始时,数据将是连续的。

在每次迭代中,该模型将不使用零填充的隐藏状态,而是将前一批次的最终状态作为当前批次的初始状态。