簡體   English   中英

PyTorch中RNN(nn.LSTM,nn.GRU等)的輸出h_n的結構如何?

[英]How is the output h_n of an RNN (nn.LSTM, nn.GRU, etc.) in PyTorch structured?

醫生說

h_n的形狀(num_layers * num_directions,batch,hidden_​​size):包含t = seq_len的隱藏狀態的張量

現在, batchhidden_​​size維度幾乎是不言自明的。 但是,第一維仍然是個謎。

我假設所有層的所有“最后一個單元”的隱藏狀態都包含在此輸出中。 但是,例如“最上層”中“最后一個單元”的隱藏狀態的索引是什么? h_n[-1] h_n[0]

輸出受batch_first選項影響嗎?

pytorch中LSTM和GRU的實現自動包括LSTM和GRU的堆疊層的可能性。

您可以使用關鍵字nn.LSTM(num_layers=num_layers)作為參數。 num_layers是您擁有的堆疊LSTM(或GRU)的數量。 默認值為1,這為您提供了基本的LSTM。

num_directions是1或2。對於普通LSTM和GRU,它是1,對於雙向RNN,它是2。

因此,在您的情況下,您可能有一個簡單的LSTM或GRU,因此num_layers * num_directions的值將為1。

h_n[0]是最底層(接受輸入的那一層)的隱藏狀態,是h_n[-1]是最頂層(輸出網絡的輸出那一層)的隱藏狀態。

batch_first將批次維放在時間維之前(默認為時間維在批次維之前),因為隱藏狀態沒有時間維, batch_first對隱藏狀態形狀沒有影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM