Error de forma de entrada en la segunda capa (pero no la primera) de Keras LSTM

EDITADO para la concisión.

Estoy tratando de construir un modelo LSTM, trabajando en el ejemplo de documentación en

https://keras.io/layers/recurrent/

from keras.models import Sequential from keras.layers import LSTM 

Las siguientes tres líneas de código (más comentarios) se toman directamente del enlace de documentación anterior:

 model = Sequential() model.add(LSTM(32, input_dim=64, input_length=10)) # for subsequent layers, not need to specify the input size: model.add(LSTM(16)) 

ValueError: la entrada 0 es incompatible con la capa lstm_2: ndim esperado = 3, encontrado ndim = 2

Obtengo el error anterior después de ejecutar la segunda statement model.add (), pero antes de exponer el modelo a mis datos, o incluso comstackrlo.

¿Qué estoy haciendo mal aquí? Cualquier ayuda es muy apreciada. Para tu información estoy usando Keras 1.2.1. EDIT: Acabo de actualizar a la versión 1.2.2 actual, sigue teniendo el mismo problema.

Gracias a patyork por responder esto en github :

“la segunda capa LSTM no está recibiendo la entrada 3D que espera (con una forma de (tamaño de lote, pasos de tiempo, características). Esto se debe a que la primera capa LSTM tiene (por fortuna de los valores predeterminados) return_sequences = False, lo que significa que solo sale) la última característica establecida en el tiempo t-1 que es de forma (batch_size, 32), o 2 dimensiones que no incluyen el tiempo “.

Por lo tanto, para ofrecer un ejemplo de código de cómo usar un LSTM astackdo para lograr la clasificación de secuencia muchos a uno (return_sequences = False), solo asegúrese de usar return_sequences = True en las capas intermedias como esta:

 model = Sequential() model.add(LSTM(32, input_dim=64, input_length=10, return_sequences=True)) model.add(LSTM(24, return_sequences=True)) model.add(LSTM(16, return_sequences=True)) model.add(LSTM(1, return_sequences=False)) model.compile(optimizer = 'RMSprop', loss = 'categorical_crossentropy') 

(sin errores)