代码之家  ›  专栏  ›  技术社区  ›  aerin

我们使用padding使序列长度相同还有其他原因吗?

  •  0
  • aerin  · 技术社区  · 6 年前

    我们使用padding将序列长度设为相同长度还有其他原因吗?而不是为了做矩阵乘法(因此做并行计算)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Umang Gupta    6 年前

    这可能取决于你正在处理的具体情况。但一般来说,我对rnn进行零填充或任何类型的填充的唯一原因是使批处理计算工作正常。另外,填充的方式不应该影响结果。因此,它不应该有助于计算用于下游任务的隐藏状态计算。例如,您可以填充来自{t+1:t}的特定序列的结尾,但是对于进一步的任务或处理,我们应该只使用h{0:t}

    但是,如果您所做的与简单rnn(例如双向rnn)不同,那么填充可能会很复杂。例如:对于要在末尾填充的正向和反向,要填充序列的前部。

    即使对于批处理或并行计算,pytorch也有 packed sequences 它应该比填充imo快。

    推荐文章