web-dev-qa-db-fra.com

Que fait Keras.io.preprocessing.sequence.pad_sequences?

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?

32
Koffiman

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.

41
oscfri