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_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] 也没有作为压缩序列​​返回?

【问题讨论】:

【参考方案1】:

我们应该取 0-index,因为 pad_packed_sequence 返回输出和 output_lengths。

【讨论】:

以上是关于pad_packed_sequence 如何在 pytorch 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

Pytorch中的RNN之pack_padded_sequence()和pad_packed_sequence()

pytorch 对变长序列的处理

了解 PyTorch LSTM 的输入形状

pytorch对可变长度序列的处理

如何在 p:dataTable 中使用 p:graphicImage 和 StreamedContent? [复制]

PrimeNG - 如何在 p-tabView 组件中动态添加和删除 p-tabPanel