我有一个5张图像序列,我想依次通过CNN。单个输入的大小为:(5, width, height, channels)
,我想将序列中的每个图像传递到2D CNN,将所有5个输出连接到某一层,然后馈入LSTM。我的模型如下所示:
from keras.models import Model
from keras.layers import Dense, Input, LSTM, Flatten, Conv2D, MaxPooling2D
# Feed images in sequential order here
inputs = Input(shape=(128, 128, 3))
x = Conv2D(16, 3, activation='relu')(inputs)
x = MaxPooling2D((2, 2))(x)
...
# Concatenate sequence outputs here
x = LSTM(8)(x)
x = Flatten()(x)
outputs = Dense(5, activation='sigmoid')
model = Model(inputs=inputs, outputs=outputs)
最终,我想在网络中的某个点将所有5个输出连接在一起,并将它们提供给LSTM,但是我在弄清楚如何将图像序列提供给2D卷积层时遇到了麻烦。我已经研究了3D卷积层和ConvLSTM2D
层,但是我想弄清楚如何用这种方法。