了解 LSTM - 层数据维度

Understanding LSTMs - layers data dimensions

我不明白 LSTM 层是如何输入数据的。

LSTM 层需要三个维度 (x,y,z)

我确实有一个时间序列数据集:总共 2900 行,从概念上讲应该将其分成 23 个连续行的组,其中每行由 178 个特征描述。 从概念上讲,每 23 行我就有一个关于新患者的 23 行长的新序列。

以下说法正确吗?

因此x*y = "# of rows in the dataset"

假设这是正确的,在这种情况下训练模型时批量大小是多少?

可能是训练时一个时期考虑的样本数?

因此,通过使 x(样本数)等于 200,将 batch_size 设置为大于 200 是没有意义的,因为这是我的上限 - 我没有更多要训​​练的数据。

我将您的描述解读为您的总数据集包含 2900 个数据样本。其中每个数据样本有 23 个时隙,每个时隙有一个 178 维的向量。

如果是这种情况,您模型的 input_shape 应定义为 (23, 178)。批量大小很简单,即用于训练/测试/预测的样本数量(2900 个)运行。

尝试以下操作:

from keras.models import Sequential
from keras.layers import Dense, LSTM


model = Sequential()
model.add(LSTM(64, input_shape=(23,178)))
model.compile(loss='mse', optimizer='sgd')
model.summary()

print model.input

这只是一个简单的模型,它为每个样本输出一个 64 宽向量。您会看到预期的 model.input 是:

Tensor("lstm_3_input:0", shape=(?, 23, 178), dtype=float32)

batch_size 未在输入形状中设置,这意味着该模型可用于训练/预测不同大小的批次。