Входной слой LSTM должен быть 3D с размерами:
- образцов,
- временных шагов и,
- функции
Попробуйте это так:
from keras.models import Model
from keras.layers import Input
from keras.layers import LSTM
from keras.layers import Dense
import numpy as np
# define model
X = np.random.rand(2000, 7, 7, 512)
X = X.reshape(2000, 49, 512)
visible = Input(shape=(49,512))
Lstm = LSTM(units=22, return_sequences=True)(visible)
Dense_1 = Dense(4096)(Lstm)
Dense_2 = Dense(512 ,activation='sigmoid')(Dense_1)
Dense_3 = Dense(5, activation='sigmoid')(Dense_2)
model = Model(input = visible, output=Dense_3)
Входной слой LSTM определяется аргументом формы в первом скрытом слое.
Требуется кортеж из двух значений, которые определяют количество временных шагов и функций.
Предполагается, что количество выборок равно 1 или более, здесь я думаю, что 2000 - это число выборок.