在 OpenNMT-py 中输出隐藏状态
Output hidden state in OpenNMT-py
我有一个关于 OpenNMT 的 pytorch 版本的简短问题。选项中好像没有return编码器和解码器隐藏状态的选项。我是否遗漏了一个标志或者这不是 OpenNMT-py 中的一个选项?
编码器和解码器没有return隐藏状态是什么意思?
如果您看到 RNNEncoder,它 returns encoder_final, memory_bank, lengths
其中 memory_bank
表示形状为 seq_len x batch_size x hidden_size
的隐藏状态。 encoder_final
通常由 sequence-to-sequence 模型中的解码器使用。
现在,让我们看看RNNDecoder。如我们所见,forward() 方法 return 是一个 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)``.
通常,我们在sequence-to-sequence任务中使用dec_outs
。例如,在自然语言生成任务中,我们将 dec_outs
馈送到 softmax 层以预测标记。
还有其他几种类型 encoders/decoders,您可以从以下两个链接中进行探索。
我有一个关于 OpenNMT 的 pytorch 版本的简短问题。选项中好像没有return编码器和解码器隐藏状态的选项。我是否遗漏了一个标志或者这不是 OpenNMT-py 中的一个选项?
编码器和解码器没有return隐藏状态是什么意思?
如果您看到 RNNEncoder,它 returns encoder_final, memory_bank, lengths
其中 memory_bank
表示形状为 seq_len x batch_size x hidden_size
的隐藏状态。 encoder_final
通常由 sequence-to-sequence 模型中的解码器使用。
现在,让我们看看RNNDecoder。如我们所见,forward() 方法 return 是一个 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)``.
通常,我们在sequence-to-sequence任务中使用dec_outs
。例如,在自然语言生成任务中,我们将 dec_outs
馈送到 softmax 层以预测标记。
还有其他几种类型 encoders/decoders,您可以从以下两个链接中进行探索。