理解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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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