Une explication détaillée de @DanielAdiwardana 's réponse.
Nous avons besoin d'ajouter return_sequences=True pour tous les LSTM les calques sauf le dernier.
Cette option à True permet de Keras sais que LSTM sortie doit contenir tous les produits générés, ainsi que le temps de timbres (3D). Donc, la prochaine LSTM couche peut travailler sur les données.
Si ce drapeau est faux, alors LSTM retourne uniquement la dernière sortie (2D). Cette sortie n'est pas assez bon pour un autre LSTM couche.
# 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'))
Sur une NOTE de côté :: dernière couche Dense est ajouté pour obtenir une sortie dans le format requis par l'utilisateur. Ici Dense(10) signifie que 10 classes différentes de sortie sera généré à l'aide de softmax d'activation.
Dans le cas où vous utilisez LSTM pour le temps de la série , alors vous devriez avoir Dense(1). De sorte qu'une seule sortie numérique est donné.