首页 > 解决方案 > Keras 中 LSTM 的不同 time_step 输入

问题描述

我正在尝试构建一个编码器-解码器网络来对视频数据进行分类。阅读 LSTM 单元的 Keras 文档,它期望time_step单元的数量是固定的。但是,我正在处理的数据对于每个类别都有不同的帧数。我想我可以挑选出最长的帧,然后用开始帧或最后帧填充其余的帧,但我认为模型会偏向具有相似帧的帧。有没有办法可以将不同的输入数据输入time_stepKeras 中的 LSTM 单元?我可以在序列的开头和结尾放置一个<start><end>标记来告诉网络何时进行预测,但我不知道该怎么做。

任何帮助将不胜感激,谢谢!

标签: keraslstmrecurrent-neural-network

解决方案


阅读 LSTM 单元的 Keras 文档,它期望单元有固定数量的 time_step。

我不知道你从哪里得到这些信息,但你可以为 lstm 传递可变长度序列(可变 time_step dim)。 LSTM类是 RNN 类的子类,keras RNN 文档说。

该层支持对具有可变时间步数的输入数据进行屏蔽

为了将可变长度序列输入 LSTM,时间步长维度应该是None. 例如

model = Sequential()
model.add(LSTM(32, input_shape=(None, 10)))

推荐阅读