如何在Keras中为多个序列LSTM准备输入数据?

时间:2019-01-04 12:26:02

标签: python 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必须完美划分子序列的数量?

0 个答案:

没有答案