#python #tensorflow #computer-vision #conv-neural-network #lstm
Вопрос:
Я строю модель CNN-LSTM для прогнозирования следующего кадра, которую я прочитал в этой статье. Автор сказал, что он использовал слой conv2d и maxpool2d для извлечения объектов, а затем использовал слой выравнивания для создания 1-d вектора. После того, как он использовал 2 слоя lstm, а затем плотный слой на выходе. Мне интересно, как он получил изображение с выходного слоя? Разве последний слой не выдает результат в форме 1-D тензора? Вот мой код:
model = keras.Sequential()
# extract features and dropout
model.add(
layers.TimeDistributed(
layers.Conv2D(64, (3, 3), activation='relu'),
input_shape=(None, 64, 64, 1)
)
)
model.add(layers.TimeDistributed(layers.MaxPooling2D((2, 2), strides=(1, 1))))
model.add(layers.TimeDistributed(layers.Flatten()))
model.add(layers.Dropout(0.5))
# input to LSTM
model.add(layers.LSTM(64, return_sequences=True, dropout=0.5))
model.add(layers.LSTM(64, return_sequences=False, dropout=0.5))
model.add(layers.Dense(64*64, activation='sigmoid'))