#python #tensorflow #machine-learning #deep-learning #pytorch
Вопрос:
В контексте рекуррентных нейронных сетей меня интересует пакетирование динамических последовательностей переменной длины для минимизации вычислений. Я знаю, что популярные пакеты, такие как pytorch и tensorflow, обладают этой функциональностью ( pack_padded_sequence
и ragged_tensors
соответственно), но меня интересует случай, когда длина последовательностей заранее неизвестна и вместо этого зависит от некоторых промежуточных вычислений. Примером может быть декодер предложений переменной длины, где мы хотим останавливаться только при <eos>
выводе тега. В более общем плане я думаю о следующей форме прямого прохода с учетом некоторого простого условия (что-то вроде if f(hidden) == <eos>
):
hidden <- initialise hidden state
for x in input_sequence:
hidden = RNN(x, hidden)
if hidden == condition:
break
Мой вопрос в том, может ли вышеуказанная операция в настоящее время быть обработана (или иным образом эффективно вычислена) в любых существующих пакетах глубокого обучения (pytorch, tensorflow, DyNet)? А если нет, ошибаюсь ли я, думая, что это можно было бы реализовать (на основе этого или этого)?