Acerca de la comprensión de LSTM en Keras

Acerca de la comprensión de LSTM en Keras

Me preguntaba cómo funcionaba LSTM con Keras.

Tomemos un ejemplo. Tengo una longitud máxima de oración de 3 palabras. Ejemplo: 'cómo estás' Vectorizo ​​cada palabra en un vector de len 4. Entonces tendré una forma (3,4) Ahora, quiero usar un lstm para hacer cosas de traducción. (Solo un ejemplo)

model = Sequential()
model.add(LSTM(1, input_shape=(3,4), return_sequences=True))
model.summary()

Voy a tener una forma de salida de (3,1) según Keras.

Layer (type)                 Output Shape              Param #   
=================================================================
lstm_16 (LSTM)               (None, 3, 1)              24        
=================================================================
Total params: 24
Trainable params: 24
Non-trainable params: 0
_________________________________________________________________

Y esto es lo que no entiendo.

Cada unidad de un LSTM (Con return_sequences=True para tener toda la salida de cada estado) debería darme un vector de forma (pasos de tiempo, x) Donde timesteps es 3 en este caso, y x es el tamaño de mi vector de palabras (en este caso, 4)

Entonces, ¿por qué obtuve una forma de salida de (3,1)? Busqué por todas partes, pero no puedo resolverlo.

Mostrar la mejor respuesta

Su interpretación de lo que debería devolver el LSTM no es correcta. La dimensionalidad de salida no necesita coincidir con la dimensionalidad de entrada. En concreto, el primer argumento de keras.layers.LSTM corresponde a la dimensionalidad del espacio de salida , y lo está configurando en 1.

En otras palabras, configurando:

model.add(LSTM(k, input_shape=(3,4), return_sequences=True))

dará como resultado una forma de salida (None, 3, k).

Gracias por tu respuesta. Entonces, si lo entiendo, ¿quiere decir que el primer argumento se refiere a la cantidad de neuronas en las diferentes puertas del LSTM? Entonces, cualquiera que sea la entrada, la salida y el vector de contexto tendrán el argumento len. Está bien ?

Correcto, el primer argumento se refiere a la dimensionalidad de salida de las puertas LSTM, y la dimensionalidad de salida no depende de la dimensionalidad de entrada.

@Pusheen_the_dev si la respuesta ha sido útil, acéptela amablemente y/o vote a favor; las respuestas ocupan un tiempo valioso para los encuestados