Есть ли какая-то другая причина, почему мы делаем длину последовательности одинаковой, используя отступы? - PullRequest
0 голосов
/ 25 января 2019

Есть ли другая причина, почему мы делаем длину последовательности такой же длины, используя отступ? За исключением случаев умножения матриц (следовательно, параллельных вычислений).

1 Ответ

0 голосов
/ 25 января 2019

Это может зависеть от конкретной ситуации, с которой вы имеете дело. Но в целом единственная причина, по которой я бы использовал заполнение нулями или любой другой вид заполнения для RNN, заключается в том, чтобы заставить работать пакетные вычисления. Кроме того, заполнение должно быть сделано таким образом, чтобы оно не влияло на результаты. Таким образом, он не должен способствовать вычислению скрытого состояния, которое вы будете использовать для последующих задач. Например, вы можете дополнить конец определенной последовательности от {t + 1: T}, но тогда для дальнейшей задачи или обработки мы должны использовать только h {0: t}

Однако, если вы делаете что-то отличное от простого RNN (например, двунаправленный-RNN), заполнение может быть затруднено. Например: для прямого направления вы должны заполнить в конце, а для обратного направления вы хотите добавить переднюю часть последовательности.

Даже для пакетной обработки или выполнения параллельных вычислений pytorch имеет packed sequences, что должно быть быстрее, чем заполнение IMO.

...