La documentación de Keras podría mejorarse aquí. Después de leer esto, todavía no entiendo qué hace exactamente: Keras.io.preprocessing.sequence.pad_sequences
¿Alguien podría aclarar qué hace esta función e, idealmente, proporcionar un ejemplo?
pad_sequences se utiliza para garantizar que todas las secuencias de una lista tengan la misma longitud. De forma predeterminada, esto se hace rellenando con 0 al comienzo de cada secuencia hasta que cada secuencia tenga la misma longitud que la secuencia más larga.
Por ejemplo
>>> pad_sequences([[1, 2, 3], [3, 4, 5, 6], [7, 8]]) array([[0, 1, 2, 3], [3, 4, 5, 6], [0, 0, 7, 8]], dtype=int32) [3, 4, 5, 6] es la secuencia más larga, por lo que se agregará 0 a las otras secuencias para que su longitud coincida con [3, 4, 5, 6] .
Si prefiere rellenar hasta el final de las secuencias, puede configurar padding='post' .
Si desea especificar la longitud máxima de cada secuencia, puede usar el argumento maxlen . Esto truncará todas las secuencias más largas que maxlen .
>>> pad_sequences([[1, 2, 3], [3, 4, 5, 6], [7, 8]], maxlen=3) array([[1, 2, 3], [4, 5, 6], [0, 7, 8]], dtype=int32)Ahora cada secuencia tiene la longitud 3 en su lugar.
Según la documentación, se puede controlar el truncamiento con pad_sequences. De forma predeterminada, el truncamiento se establece en pre , lo que trunca la parte inicial de la secuencia. Si prefiere truncar la parte final de la secuencia, puede configurarla para post .
algunos ejemplos:
>>> from keras.preprocessing.sequence import pad_sequences >>> a = [[1, 2, 3], [3, 4, 5, 6], [7, 8]] >>> # add the 0's on the beginning of sequences >>> pad_sequences(a) array([[0, 1, 2, 3], [3, 4, 5, 6], [0, 0, 7, 8]]) >>> # add the 0's on the end of sequences >>> pad_sequences(a, padding="post") array([[1, 2, 3, 0], [3, 4, 5, 6], [7, 8, 0, 0]]) >>> # add a limit length of sequences >>> pad_sequences(a, maxlen=3) array([[1, 2, 3], [4, 5, 6], [0, 7, 8]]) >>> # add a limit length on the end of sequences >>> pad_sequences(a, maxlen=3, padding="post") array([[1, 2, 3], [4, 5, 6], [7, 8, 0]])