pad_packed_sequence 如何在 pytorch 中工作?
Posted
技术标签:
【中文标题】pad_packed_sequence 如何在 pytorch 中工作?【英文标题】:How does pad_packed_sequence work in pytorch? 【发布时间】:2021-09-06 13:34:41 【问题描述】:LSTM 在 pytorch 中的输出:
我将输入作为打包序列(双向 LSTM)给出,然后仅根据文档
output
已打包,h_n
、c_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] 也没有作为压缩序列返回?
【问题讨论】:
【参考方案1】:我们应该取 0-index,因为 pad_packed_sequence 返回输出和 output_lengths。
【讨论】:
以上是关于pad_packed_sequence 如何在 pytorch 中工作?的主要内容,如果未能解决你的问题,请参考以下文章
Pytorch中的RNN之pack_padded_sequence()和pad_packed_sequence()