Как сложить несколько lstm в keras?
Я использую библиотеку глубокого обучения keras и пытаюсь сложить несколько LSTM без везения. Ниже приведен мой код
model = Sequential()
model.add(LSTM(100,input_shape =(time_steps,vector_size)))
model.add(LSTM(100))
приведенный выше код возвращает ошибку в третьей строке Exception: Input 0 is incompatible with layer lstm_28: expected ndim=3, found ndim=2
вход X представляет собой тензор формы (100,250,50). Я запускаю keras на TensorFlow backend
1 ответов
вам нужно добавить return_sequences=True
к первому слою, так что его выходной тензор имеет ndim=3
(т. е. размер партии, временные шаги, скрытое состояние).
см. следующий пример:
# expected input data shape: (batch_size, timesteps, data_dim)
model = Sequential()
model.add(LSTM(32, return_sequences=True,
input_shape=(timesteps, data_dim))) # returns a sequence of vectors of dimension 32
model.add(LSTM(32, return_sequences=True)) # returns a sequence of vectors of dimension 32
model.add(LSTM(32)) # return a single vector of dimension 32
model.add(Dense(10, activation='softmax'))
From:https://keras.io/getting-started/sequential-model-guide/ (поиск "stacked lstm")