使用keras(TensorFlow)构建Conv2D + LSTM模型

使用keras(TensorFlow)构建Conv2D + LSTM模型,第1张

使用keras(TensorFlow)构建Conv2D + LSTM模型

Conv2D
层需要四个维度,而不是三个:

  • (batch_size, height, width, channels)

并且

TimeDistributed
将需要额外的尺寸:

  • (batch_size, frames, height, width, channels)

因此,如果您真的要使用

TimeDistributed
+
Conv2D
,则需要5个维度。你
input_shape=(86,28,28,3)
,或者你的
batch_input_shape=(batch_size,86,28,28,3)
,在这里我假设你有一个RGB视频(3个色通道)。

通常,您只需将输入形状传递给

TimeDistributed

model.add(TimeDistributed(Dense(....), input_shape=(86,28,28,3))

batch_input_shape
仅在使用
stateful=True
LSTM的情况下才需要。然后,您只需将batch_input_shape替换为input_shape。


请注意,只有卷积2D层​​才能看到高度和宽度方面的图像。添加LSTM时,将需要调整数据的形状以将高度,宽度和通道合并为一个维度。

对于形状(框架,h,w,ch):

model.add(Reshape((frames,h*w*ch)))

而且,您不应

TimeDistributed
仅将这些LSTM与卷积层一起使用。

您的使用方法可以,

model.add(TimeDistributed(Flatten()))
而不需要重塑。


还要注意,Keras最近实现了

ConvLSTM2D
一层,这可能对您有用:https
:
//keras.io/layers/recurrent/#convlstm2d



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5640227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存