Запутанное повторное использование LSTM с сохранением состояния в языковом моделировании

Я видел github-коды базовой языковой модели https://github.com/tensorflow/models/blob/master/tutorials/rnn/ptb/ptb_word_lm.py и пытался реализовать их для моего проекта. Он использует LSTM с сохранением состояния или сохраняет состояния lstm между партиями. Я запутался в отношении этого поведения, почему оно необходимо в первую очередь в языковых моделях. Потому что, скажем, размер партии равен 20. Скрытый размер lstm равен 1500. Поэтому укажите размер lstm [20,1500]. Таким образом, сохранение состояния пакета и его использование в следующем пакете не является необходимым, поскольку следующий пакет будет иметь совершенно разные последовательности. и как это сохраненное состояние синхронизируется со скрытым состоянием lstm в следующем пакете? Может кто-нибудь сказать мне необходимость сохранения состояний lstm между партиями в случае фрагментированных последовательностей? И насколько это полезно в данном случае языковой модели? где ввод - это подача, учитывающая фиксированное количество слов в последовательности, а не предложение как целую последовательность и передачу ряда последовательностей в пакете, поэтому в идеале это случай фрагментированных последовательностей в качестве ввода. но lstm с сохранением состояния полезен в случае размера пакета 1, но как это полезно для batch_size>1, как в этом случае?

0 ответов

Другие вопросы по тегам