La documentation de Keras pourrait être améliorée ici. Après avoir lu ceci, je ne comprends toujours pas ce que cela fait exactement: Keras.io.preprocessing.sequence.pad_sequences
Quelqu'un pourrait-il illustrer le rôle de cette fonction et, idéalement, donner un exemple?
pad_sequences
permet de s’assurer que toutes les séquences d’une liste ont la même longueur. Par défaut, cela se fait en ajoutant 0
au début de chaque séquence jusqu'à ce que chaque séquence ait la même longueur que la séquence la plus longue.
Par exemple
>>> 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]
est la plus longue séquence, donc 0
sera ajouté aux autres séquences afin que leur longueur corresponde à [3, 4, 5, 6]
.
Si vous voulez plutôt ajouter un pad à la fin des séquences, vous pouvez définir padding='post'
.
Si vous souhaitez spécifier la longueur maximale de chaque séquence, vous pouvez utiliser l'argument maxlen
. Cela tronquera toutes les séquences plus longues 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)
Maintenant, chaque séquence a la longueur 3 à la place.