了解 tf.contrib.seq2seq.dynamic_docode 的 final_outputs

use*_*927 3 tensorflow seq2seq

当我在这里阅读 seq2seq 教程时,我无法理解 function 的输出tf.contrib.seq2seq.dynamic_docode

本教程访问用于训练sample_id = outputs.sample_idlogits = self.output_layer(outputs.rnn_output)推理时使用的解码器的输出,logits = outputs.rnn_output以及sample_id = outputs.sample_id。什么是logitssample_id这里代表什么?final_outputs函数的内容是什么tf.contrib.seq2seq.dynamic_docode

use*_*927 6

好吧,抱歉问这么幼稚的问题。从这里想通了。所以outputsoftf.contrib.seq2seq.BasicDecoder是 的一个实例class BasicDecoderOutput(rnn_output, sample_id)。我觉得官方文档应该已经给出了这个信息。

更详细地说:

rnn_output 是解码单元的输出。

sample_id是 a 返回的 id Helper。对于GreedyEmbeddingHelpersample_idargmax(outputs, axis=-1, output_type=dtypes.int32)。而sample_idoutputstf.contrib.seq2seq.BasicDecoder应该是形状的[num_timesteps],如果GreedyEmbeddingHelper使用。