2017-07-06 1 views
6

Dans pytorch, nous pouvons donner une séquence condensée en tant qu'entrée au RNN. De official doc, l'entrée d'un RNN peut être comme suit.Comment les séquences matelassées données en séquences condensées sont traitées par RNN dans pytorch?

entrée (seq_len, batch, input_size): contenant tenseur les caractéristiques de la séquence d'entrée. L'entrée peut également être une séquence de longueur variable compressée.

Exemple

packed = torch.nn.utils.rnn.pack_padded_sequence(embedded, input_lengths) 
outputs, hidden = self.rnn(packed, hidden) 
outputs, output_lengths = torch.nn.utils.rnn.pad_packed_sequence(outputs) 

Ici, embedded est la représentation intégrée d'une entrée par lots.

Ma question est, comment le calcul est effectué pour les séquences emballées dans RNN? Comment les états cachés sont-ils calculés pour des séquences capitonnées dans un lot à travers une représentation condensée?

Répondre

0

Basé sur la réponse de matthew_zeng de this relevent question: les sorties ne sont pas calculées pour les éléments matelassés, et l'état masqué sera caché après la dernière entrée valide.