0

J'ai trouvé deux solutions de traitement possibles avec des séquences d'entrée de taille variable pour RNN dans Keras. La solution une:Keras: séquence d'entrée variable: remplissage par rapport à la forme Aucune?

input = Input(shape=(None, num_classes)) 

je peut mettre toutes les tailles de séquence en tant qu'entrée pour l'entraînement et validation.

La solution à deux:

input = Input(shape=(max_seq_length, num_classes)) 
... 
pad_sequences(input_data, maxlen=max_seq_length, padding='post') 

Quelle est la solution recommandée?

Je considère les avantages de ces deux. Ce que je peux voir dans la solution deux est une sorte de validation de la taille d'entrée. L'entrée ne peut pas être plus grande que max_seq_size, de plus je peux décider du type de padding (pré/post) et de même pour le timing d'une séquence trop grande.

Quel type de rembourrage et de rognage est fait en utilisant la solution? Paramètres par défaut de pad_sequence?

J'ai comparé le temps de modèle de formation pour la solution et c'est à peu près la même heure. Je suppose que sous le capot, c'est la même chose, comme le max_seq_length est calculé à partir de la longueur maximale de la séquence d'entraînement, ai-je raison?

Merci pour toute précision!

Répondre

0

Il n'y a tout simplement pas de rembourrage ou de rognage dans la première solution. Il prend la séquence telle quelle et la traite. Le modèle est totalement indépendant de la longueur de la séquence.

Dans la solution deux, le mieux à faire est d'ajouter une couche Masking. Il ignorera simplement le traitement des valeurs complétées.