0

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

4

1 回答 1

1

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

但是,如果您正在做与简单 RNN 不同的事情(例如双向 RNN),则进行填充可能会很复杂。例如:对于正向,您将在末尾填充,而对于反向,您将要填充序列的前部。

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

于 2019-01-24T22:24:20.970 回答