如何将5D张量引入LSTM?

2024-04-28 22:04:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有视频数据与输入形状的三维CNN网络为(150,80,80,16,3)。在

我得到了conv layer的输出,其形状为(150,7,7,2,512),表示:

150个序列

7.7高和宽

2时间维度

512个要素图

我想将其输入LSTM,因此我将输出数据重新调整为:

model.add(Reshape((1, 7*7*2*512)))
model.add(LSTM(100, return_sequence=true))

它适用于LSTM,但我不确定这是否正确(我是否应该将时空=16,并根据我们在开始时选择的时间维度,将特征号更改为3136)。我知道LSTM应该得到一个具有形状(序列、时空、特征)的数据。在

如果你有什么建议,我会很乐意的。在

谢谢


Tags: 数据网络addlayer视频model时间序列
1条回答
网友
1楼 · 发布于 2024-04-28 22:04:05

你真的很接近,但你错过了一个关键的步骤来组织时间步骤或时间维度。您要的是(150, 2, 7*7*512),它表示150个样本、2个时间步和平坦特征。因此,您可以先置换再重塑:

model.add(Permute((3, 1, 2, 4)) # (samples, 2, 7, 7, 512)
model.add(Reshape((2, 7*7*512)) # (samples, 2, 7*7*512)

现在LSTM将处理2个时间步的平坦图像特征。在

请注意,对于每个时间步,这实际上是非常大的功能空间,您可能需要通过池操作或其他CNN层来减少功能集。在

相关问题 更多 >