Je vais avoir de la difficulté à comprendre la documentation de PyTorch du LSTM module (et aussi RNN et GRU, qui sont similaires). Concernant les sorties, il dit:
Sorties: sortie, (h_n, c_n)
- de sortie (seq_len, lot, hidden_size * num_directions): tenseur contenant les caractéristiques de sortie (h_t) à partir de la dernière couche de la RNN, pour chaque t. Si une torche.nn.utils.rnn.PackedSequence a été donné comme l'entrée, la sortie sera également un des paniers de la séquence.
- h_n (num_layers * num_directions, lot, hidden_size): tenseur contenant de l'état caché pour t=seq_len
- c_n (num_layers * num_directions, lot, hidden_size): tenseur contenant l'état de la cellule pour t=seq_len
Il semble que les variables output
et h_n
à la fois donner les valeurs de l'état caché. N' h_n
seulement de manière redondante fournir le dernier pas de temps qui est déjà inclus dans output
, ou est-il quelque chose de plus que cela?