【发布时间】:2019-05-29 07:07:59
【问题描述】:
我在 Keras 中实现 LSTM 时遇到了一些问题。
我的训练集结构如下:
- 序列数:5358
- 每个序列的长度为300
- 序列的每个元素都是一个包含 54 个特征的向量
我不确定如何为有状态 LSTM 调整输入。
按照本教程:http://philipperemy.github.io/keras-stateful-lstm/,我创建了子序列(在我的例子中,有 1452018 个子序列,window_size = 30)。
为有状态 LSTM 的输入重塑数据的最佳选择是什么?
在这种情况下,输入的时间步长是什么意思?为什么?
batch_size 与时间步长有关吗?
【问题讨论】:
-
这里 300 是您的时间步长。基本上你有 5358 个样本 300 个时间步长,每个都有 54 个特征
-
所以如果我不创建子序列,我可以使用形状为 (5358,300, 54) 的数据,对吧?但如果我这样做呢?在这种情况下,batch_size 是如何工作的?
-
那些带windows的教程真的是开始学习LSTM的最糟糕的方式。批量大小是您传递给模型以进行一次梯度下降更新的序列数。
-
假设你真的想要windows,并且你对1452018个子序列的计算是正确的,你的数据形状是
(1452018,30,54)。
标签: python tensorflow keras lstm