python - 如何在 Keras 中为多个序列 LSTM 准备输入数据?
问题描述
我有 5000 个 10 秒的视频。对于每个视频,我提取了 300 帧 (30 fps),并且对于每一帧,我提取了 50 个特征。因此,我的数据集可以表示为具有维度的立方体(帧 = 300,特征 = 50,视频 = 5000)
我想在 Keras 中创建一个有状态的 LSTM,但我不明白如何塑造我的输入以及训练我的模型的最佳方法是什么?
在阅读了几篇文章后,我想到了一种可能的解决方案:
- 从每个序列创建子序列。例如,如果 window_size = 30,我有 300 - 30 + 1 = 271 个子序列。每个子序列有 50 个特征,所以我有一个尺寸为 271x30x50 的立方体。我对 5000 个样本中的每一个重复此步骤。
训练模型一次输入一个立方体,所以我的 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必须完美地划分子序列的数量?
解决方案
推荐阅读
- pandas - 时间序列分析 - 将值放入箱中
- php - 如果变量包含单词,则显示并获取行号
- api - 如何在起点和终点之间的地图 api 请求中添加中途停留
- azure-active-directory - 邀请 API 返回 401 访问令牌验证失败。无效的观众
- php - preg_replace 有时会忽略换行符?
- c - 这种情况是否被视为竞争条件?
- python-3.x - 我正在尝试在使用 pygame 的另一个屏幕中从键盘获取一些输入。我该怎么做?
- python - plotly express choropleth map customizing hover data error: ValueError: Value of 'hover_data_0' is not the name of a column in 'data_frame'
- python - Drawing a crosshair in PyOpenGL
- java - 当我想更改起始活动时,获取“未找到默认活动”