还有其他原因为什么我们使用填充使序列长度相同?

时间:2019-01-24 21:07:38

标签: tensorflow pytorch recurrent-neural-network sequence-modeling

还有其他原因使我们使用填充使序列长度等于长度吗?除了为了进行矩阵乘法(因此要进行并行计算)。

1 个答案:

答案 0 :(得分:1)

这可能取决于您要处理的特定情况。但是总的来说,我对RNN进行零填充或任何填充的唯一原因是使批处理计算有效。另外,填充应以不影响结果的方式进行。因此,它不应有助于计算将用于下游任务的隐藏状态计算。例如,您可以从{t + 1:T}填充特定序列的末尾,但是对于进一步的任务或处理,我们应该仅使用h {0:t}

但是,如果您要执行的操作不同于简单的RNN(例如,双向RNN),则执行填充操作可能会很复杂。例如:对于正向,您将在末端进行填充;对于反向,您将希望对序列的前端进行填充。

即使对于批处理或并行计算,pytorch的{​​{1}}也应比填充IMO更快。