Keras 如何在Conv2D层之后添加CONVLSM2D层?

Keras 如何在Conv2D层之后添加CONVLSM2D层?,keras,deep-learning,conv-neural-network,recurrent-neural-network,Keras,Deep Learning,Conv Neural Network,Recurrent Neural Network,我正在制作一个自动编码器,用于单目图像的深度估计。第一层是卷积层,第二层是卷积LSTM层。如何在Conv2D层之后添加ConvLSTM2D层 这是我尝试过的代码,但它给出了一个错误 自动编码器=顺序 autoencoder.addConv2D64,3,3,步幅=2,输入_形状=640480,3,激活='linear' autoencoder.addLeakyReLUalpha=0.1 autoencoder.addConvLSTM2D256,3,3,步幅=2,输入\形状=无,32,返回\序列=真

我正在制作一个自动编码器,用于单目图像的深度估计。第一层是卷积层,第二层是卷积LSTM层。如何在Conv2D层之后添加ConvLSTM2D层

这是我尝试过的代码,但它给出了一个错误

自动编码器=顺序 autoencoder.addConv2D64,3,3,步幅=2,输入_形状=640480,3,激活='linear' autoencoder.addLeakyReLUalpha=0.1 autoencoder.addConvLSTM2D256,3,3,步幅=2,输入\形状=无,32,返回\序列=真 我得到以下错误

ValueError:输入0与层conv_gr_u2d_1不兼容:应为 ndim=5,发现ndim=4


Conv2D的输入形状应为:

input_shape = (batch_size, img_wd, img_hg, channels) 
例如:


您不必在ConvGRU2D中添加输入形状参数,您可能误解了ConvLSTM2D的好处。它是为这样一种场景而设计的:您拥有一系列数据,其中每个数据点都是一幅图片。因此,电影将是一个典型的用例

因此,无论您向其中输入什么,都必须具有形状批次大小、时间步长、行、列、通道。另一方面,Conv2D具有批大小、行、列、特征的输出形状。这就是错误告诉你的

从技术上讲,您可以在它们之间添加一层并生成您想要的任何形状,但我不认为这在您的场景中有任何意义

反之亦然,先使用ConvLSTM2D,然后使用Conv2D会更有意义。但是你需要像电影一样的输入数据。如果我没弄错的话,你就没有这个

input_shape = (None, 640, 480, 3)