首页 > 解决方案 > 如何在 Keras 中为多个序列 LSTM 准备输入数据?

问题描述

我有 5000 个 10 秒的视频。对于每个视频,我提取了 300 帧 (30 fps),并且对于每一帧,我提取了 50 个特征。因此,我的数据集可以表示为具有维度的立方体(帧 = 300,特征 = 50,视频 = 5000)

我想在 Keras 中创建一个有状态的 LSTM,但我不明白如何塑造我的输入以及训练我的模型的最佳方法是什么?

在阅读了几篇文章后,我想到了一种可能的解决方案:

  1. 从每个序列创建子序列。例如,如果 window_size = 30,我有 300 - 30 + 1 = 271 个子序列。每个子序列有 50 个特征,所以我有一个尺寸为 271x30x50 的立方体。我对 5000 个样本中的每一个重复此步骤。
  2. 训练模型一次输入一个立方体,所以我的 Python 代码应该是这样的:

    for e in epochs:
    
        for x in cubes:
    
            mdoel.fit(x, y, shuffle=False, batch_size=30, epochs=1)
    
            model.reset_states()
    

我的解决方案正确吗?如果是,是否有更好的方法来执行此任务?batch_size=30 呢?它是正确的还是batch_size必须完美地划分子序列的数量?

标签: pythonkeraslstm

解决方案


推荐阅读