pad_packed_sequence 在 pytorch 中如何工作?

How does pad_packed_sequence work in pytorch?

pytorch 中 LSTM 的输出: 我将输入作为打包序列(双向 LSTM)然后仅根据文档 output 被打包并且 h_nc_n 作为张量返回?在将 pad_packed_sequence 函数应用到 output 以解压缩它之后,如何将隐藏状态作为张量获取?我在某处看到这段代码:pad_packed_sequence(output)[0],为什么我们必须在这里取0-index?同样对于最后的隐藏状态和单元状态,我使用 h_n[0],h_n[1]c_n[0],c_n[1] 获得张量。在这种情况下,完成 0 和 1 索引以获得前向和后向隐藏状态和单元状态。我不明白 output 的 0 索引,为什么 h_[n] 和 c_[n] 也没有作为打包序列返回?

我们应该取 0-index,因为 pad_packed_sequence returns 输出和 output_lengths.