取消tf.contrib.seq2seq.dynamic_docode的final_output

时间:2018-05-24 12:43:41

标签: tensorflow seq2seq

当我阅读seq2seq教程here时,我无法理解函数tf.contrib.seq2seq.dynamic_docode的输出。

在推理sample_id = outputs.sample_idlogits = self.output_layer(outputs.rnn_output)中,本教程使用logits = outputs.rnn_outputsample_id = outputs.sample_id访问解码器在训​​练中使用的输出。 logitssample_id代表什么? final_outputs函数var stk={3:{221:1,220:1,224:1,226:1,198:1},24:{221:1,220:1,224:1,226:1,198:1},33:{198:1},9:{223:1,221:1,220:1,224:1,226:1,198:1},156:{220:1,224:1,226:1}}; console.log(stk[24]);的内容是什么?

1 个答案:

答案 0 :(得分:2)

好的,抱歉这么天真的问题。从here计算出来。因此outputs的{​​{1}}是class BasicDecoderOutput(rnn_output, sample_id)的实例。我认为官方文件应该提供这些信息。

更详细地说:

tf.contrib.seq2seq.BasicDecoder是解码单元的输出。

rnn_outputsample_id返回的ID。对于HelperGreedyEmbeddingHelperargmax(outputs, axis=-1, output_type=dtypes.int32)。如果使用sample_id,则sample_id的{​​{1}} outputs应该是tf.contrib.seq2seq.BasicDecoder的形状。