machine-learning - Keras - 使用 time_steps 将图像输入到 LSTM

标签 machine-learning deep-learning keras lstm

我遇到一个问题,需要使用 LSTM 多对一架构,即它首先接收 19 个图像帧,然后给出输出。

图像帧的大小为(128,128,3)。

我几天来一直在尝试,但找不到答案,LSTM 的 input_shape 应该是什么?

我相信,由于图像帧的大小为 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)

此代码在编译后出现内存错误。

这是否是由于 input_shape 和 LSTM 的其他参数中的一些错误所致,还是由于我的计算机硬件所致?

最佳答案

这当然是你的建筑。尝试更少的 LSTM 单元,data_dim 太多了。

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

model.add(LSTM(less_units, input_shape=(timesteps,data_dim)))
<小时/>

图像序列:

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

关于machine-learning - Keras - 使用 time_steps 将图像输入到 LSTM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49860738/

相关文章:

python - 如何在不使用 Python 中的外部库的情况下解析 arff 文件

python - tf.metrics.accuracy 和手写准确度函数给出不同的结果

python - Keras ImageDataGenerator() 如何从数据中获取所有标签

python - 输入数据中具有多个特征的时间序列预测

python - Keras 返回二进制结果

machine-learning - 神经网络的输入类型重要吗?

tensorflow - "Could not compute output"在 Tensorflow 2 中使用 tf.keras 合并层时出错

python - 加载模型时没有 GPU 的机器上的 Cuda 驱动程序错误

python - 机器学习(对抗性图像)

python - 从多类分类的混淆矩阵计算真阳性值