Вывод скрытого состояния в OpenNMT-py

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

1 ответ

Решение

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

Если вы видите 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, чтобы предсказать токены.

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

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