Machine learning Keras-带时间步长的LSTM图像输入

Machine learning Keras-带时间步长的LSTM图像输入,machine-learning,deep-learning,keras,lstm,Machine Learning,Deep Learning,Keras,Lstm,我有一个问题,这要求我使用LSTM多对一架构,即它将在19帧图像首先,然后给出一个输出 图像帧的大小为(128128,3) 我从几天以来一直在尝试,但找不到答案,LSTM的输入形状应该是什么 我相信,由于图像帧的大小为128*128*3,因此输入层中的单元数将为49152。当前代码如下所示: timesteps = 19 data_dim = 128*128*3 model = Sequential() model.add(LSTM(data_dim,input_shape=(timesteps

我有一个问题,这要求我使用LSTM多对一架构,即它将在19帧图像首先,然后给出一个输出

图像帧的大小为(128128,3)

我从几天以来一直在尝试,但找不到答案,LSTM的输入形状应该是什么

我相信,由于图像帧的大小为128*128*3,因此输入层中的单元数将为49152。当前代码如下所示:

timesteps = 19
data_dim = 128*128*3
model = Sequential()
model.add(LSTM(data_dim,input_shape=(timesteps, data_dim)))
model.add(Dense(10))

optimizer = 'sgd'
momentum=0.6
decay=0.0005
nesterov=True
optimizer = SGD(lr=lr, momentum=momentum, decay=decay, nesterov=nesterov)
model.compile(loss='categorical_crossentropy', optimizer=optimizer)
此代码在编译后给出内存错误


因此,这是由于LSTM的输入形状和其他参数中的某些错误,还是由于我的计算机硬件造成的?

这当然是您的设计。尝试减少LSTM单位,
数据尺寸
太多了

考虑到您的输入也是
数据_dim
,这将导致超过4*49152*49152=9.663.676.416个权重(不计算偏差)


一系列图像:

model.add(TimeDistributed(Conv2D(output_filters,kernel_size,...), input_shape=(timesteps,x,y,channels))
model.add(TimeDistributed(Flatten()))
model.add(LSTM(output_dim,...))

谢谢你,丹尼尔!如果我在这之前加上一层CNN,那会是什么样子?在m-to-1架构的LSTM层之前添加CNN层,我找不到任何好的参考。如果你能帮上忙,我将不胜感激!此外,是否有任何方法可以减少LSTM中的单元数?我已经将图像转换为灰度,并将图像转换为(64,64)
model.add(LSTM(更少的单位,输入的形状=(时间步长,数据大小))
No,它们之间没有关系。神经网络输入层中的单位数等于输入中的特征数。是吗?你能分享你的数据处理代码吗?您是如何处理model.fit(traindata…)的列车数据的?
model.add(TimeDistributed(Conv2D(output_filters,kernel_size,...), input_shape=(timesteps,x,y,channels))
model.add(TimeDistributed(Flatten()))
model.add(LSTM(output_dim,...))