我最近开始使用tensorflow,因此我仍然在基础方面苦苦挣扎。
我想创建简单的seq2seq预测。
我设法评估了模型性能并优化了权重。我一直在努力的事情是如何使用经过训练的模型进行预测。
model_outputs, states = seq2seq.basic_rnn_seq2seq(encoder_inputs,
decoder_inputs,
rnn_cell.BasicLSTMCell(data_point_dim, state_is_tuple=True))
为了生成model_outputs,我需要模型的输入值和输出值,这对于评估是有好处的,但是在预测中,我只有输入值。我猜想我需要对状态做些什么,但是我不确定如何将它们转换为浮点数序列。
完整代码可在这里https://gist.github.com/anonymous/be405097927758acca158666854600a2
训练时,您可以在每个解码器时间步长将解码器输入作为所需的输出。测试时,您没有所需的输出,因此,您可以做的最好的事情是对输出进行采样。这将是下一个时间步骤的输入。
TLDR;在每个时间步长输入解码器输出作为下一个时间步长的输入。
编辑:一些TF代码
所述basic_rnn_seq2seq函数返回小号rnn_decoder(decoder_inputs,enc_states [-1],小区)
让我们看一下rnn_decoder:def rnn_decoder(decoder_inputs,initial_state,cell,loop_function = None,scope = None):...。
loop_function:如果不是None,则此函数将应用于第i个输出,以生成第i + 1个输入,并且除第一个元素(“ GO”符号)外,decoder_inputs将被忽略。这可以用于解码,也可以用于模拟http://arxiv.org/pdf/1506.03099v2.pdf的培训。
解码期间,您需要设置此loop_function = True
我建议查看Tensorflow seq2seq库中的translate.py文件,以了解如何处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句