Что значит "развернуть RNN динамически". Я видел это специально упомянутое в исходном коде Tensorflow, но я ищу концептуальное объяснение, которое распространяется на RNN в целом.
В методе tenorflow rnn он документирован:
Если предоставляется вектор
sequence_length, динамический расчет выполнено. Этот метод расчета не вычисляет шаги RNN мимо максимальной длины последовательности мини-бара (таким образом, сохранение вычислительное время),
Но в методе dynamic_rnn он упоминает:
Параметр
sequence_lengthявляется необязательным и используется для состояния копирования и вывода нулевого выхода, когда прошло через элемент пакетного элемента длина последовательности. Так что это больше для правильности, чем производительность, в отличие отrnn().
Значит ли это, что rnn более эффективен для последовательностей переменной длины? Какова концептуальная разница между dynamic_rnn и rnn?