Вывод скрытого состояния в OpenNMT-py - PullRequest
0 голосов
/ 24 июня 2019

У меня просто короткий вопрос по поводу версии OpenNMT на pytorch.Похоже, что нет опции для возврата скрытого состояния кодера и декодера в опциях.Я пропускаю флаг или это не опция в OpenNMT-py?

1 Ответ

1 голос
/ 24 июня 2019

Что вы подразумеваете под кодером, а декодер не возвращает скрытое состояние?

Если вы видите RNNEncoder , он возвращает encoder_final, memory_bank, lengths, где memory_bank представляет скрытое состояние, имеющее форму seq_len x batch_size x hidden_size. И encoder_final обычно используется декодером в модели от последовательности к последовательности.

Теперь давайте посмотрим на RNNDecoder . Как мы видим, метод forward () возвращает FlaotTensor и словарь FlaotTensors.

(FloatTensor, dict[str, FloatTensor]):
* dec_outs: output from the decoder (after attn)
  ``(tgt_len, batch, hidden)``.
* attns: distribution over src at each tgt
  ``(tgt_len, batch, src_len)``.

Обычно мы используем dec_outs в задачах от последовательности к последовательности. Например, в задачах генерации естественного языка мы подаем dec_outs в слой softmax для прогнозирования токенов.

Существует несколько других типов кодеров / декодеров, которые вы можете изучить по следующим двум ссылкам.

...