理解LSTM – 数据维度的层

我不明白LSTM层如何接收数据。

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

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

以下陈述是否正确?

  • x 样本数 = 23行长序列的组数 – 即len(dataframe)/23
  • y 时间步长 = 每个序列的长度 – 根据领域假设这里是23。
  • z 特征大小 = 每行的列数 – 在这种情况下是178。

因此x*y = "数据集中的行数"

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

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

因此,如果x(样本数)等于200,那么设置batch_size大于200是没有意义的,因为那是我的上限 – 我没有更多的数据来训练。


回答:

我理解你的描述是说你的总数据集有2900个数据样本。每个数据样本有23个时间槽,每个时间槽有一个178维的向量。

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

尝试以下操作:

from keras.models import Sequentialfrom keras.layers import Dense, LSTMmodel = 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)

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

Related Posts

为什么我们在K-means聚类方法中使用kmeans.fit函数?

我在一个视频中使用K-means聚类技术,但我不明白为…

如何获取Keras中ImageDataGenerator的.flow_from_directory函数扫描的类名?

我想制作一个用户友好的GUI图像分类器,用户只需指向数…

如何查看每个词的tf-idf得分

我试图了解文档中每个词的tf-idf得分。然而,它只返…

如何修复 ‘ValueError: Found input variables with inconsistent numbers of samples: [32979, 21602]’?

我在制作一个用于情感分析的逻辑回归模型时遇到了这个问题…

如何向神经网络输入两个不同大小的输入?

我想向神经网络输入两个数据集。第一个数据集(元素)具有…

逻辑回归与机器学习有何关联

我们正在开会讨论聘请一位我们信任的顾问来做机器学习。一…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注