1

我只是有一个关于 OpenNMT 的 pytorch 版本的简短问题。选项中似乎没有返回编码器和解码器隐藏状态的选项。我错过了一个标志还是这不是 OpenNMT-py 中的一个选项?

4

1 回答 1

1

编码器和解码器不返回隐藏状态是什么意思?

如果你看到RNNEncoder,它会返回代表隐藏状态的encoder_final, memory_bank, lengths地方memory_bank,它是 shape seq_len x batch_size x hidden_size。并且encoder_final通常由解码器在序列到序列模型中使用。

现在,让我们看看RNNDecoder。正如我们所见,forward() 方法返回一个 FlaotTensor 和一个 FlaotTensor 字典。

(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 层以预测标记。

您可以从以下两个链接中探索其他几种类型的编码器/解码器。

于 2019-06-23T23:49:37.343 回答