【问题标题】:Understanding LSTMs - layers data dimensions了解 LSTM - 层数据维度
【发布时间】:2019-07-21 02:06:43
【问题描述】:

我不明白如何为 LSTM 层提供数据。

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

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

下列说法对吗?

  • x samples = 23 行长的序列串数 - 即 len(dataframe)/23
  • y 时间步数 = 每个序列的长度 - 这里是域假设 23。
  • z 特征大小 = 每行的列数 - 在这种情况下为 178。

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

假设这是正确的,那么在这种情况下训练模型时,batch size 是多少?

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

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

【问题讨论】:

    标签: python machine-learning keras lstm recurrent-neural-network


    【解决方案1】:

    我将您的描述解释为您的总数据集包含 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 在输入形状中未设置,这意味着该模型可用于训练/预测不同大小的批次。

    【讨论】:

    • 感谢您的评论。我的总数据集有 2900 个数据样本,但我并不是说每个样本都有 23 个时隙。每 23 秒记录的数据来自不同的患者。所以我总共有 2900/23 束。最后一件事:你能解释一下如果我选择batch_size=32对学习有什么影响吗?如何有效地学习 LSTM? 23个数据点的序列被破坏了?
    • 我想我需要更多的上下文来完全理解这个场景。您正在专门询问 LSTM 节点; LSTM 用于处理与同一标签相关的数据点序列。例如。如果您正在尝试进行情绪预测,使得“我感觉很好”导致“积极”类和“生活糟透了”导致“消极”类,那么人们将使用 LSTM,其中每个时间片都是一个单词。也许您想详细说明您要预测的内容。患者之间的数据是否相关?你的输出标签是什么?
    • 感谢您的温柔耐心。我正在构建一个 LSTM 自动编码器,以便基于不同患者时间序列的多变量数据集来学习健康患者的模式。对于每个患者,我有 23 个数据点(行),因此我想对长度为 23 的序列组进行训练。总共我应该有 2900/23 个患者(126.06 个患者,我必须弄清楚它来自哪里从两个多余的行,但这是出于这个考虑)。如果我仍然不清楚上下文,请随时告诉我。
    • 批量大小将是在每个前向和反向传播过程中一起训练的耐心/样本/bunches_of_23_time_slots 的数量。这没什么大不了的。
    • 如果您对每个患者有 23 个观察值(每个有 178 个值),然后您可以指定它是健康的概率,那么上面的示例 LSTM 应该可以工作。然后,您需要添加一个维度为 1 的额外 Dense 节点,这将是您的“健康概率”。
    猜你喜欢
    • 1970-01-01
    • 2017-03-19
    • 2018-01-11
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多