为什么在tensorflow(tf.reverse(inputs,[-1]))中输入seq2seq模型时为什么要反转输入

时间:2018-06-23 18:28:48

标签: tensorflow nlp seq2seq

为什么在tensorflow(tf.reverse(inputs,[-1]))中输入seq2seq模型时为什么要反向输入

training_predictions,test_predictions=seq2seq_model(tf.reverse(inputs,[-1]),
                                                    targets,
                                                    keep_prob,
                                                    batch_size,
                                                    seq_length,
                                                    len(answerswords2int),
                                                    len(questionswords2int),
                                                    encoding_embedding_size,
                                                    decoding_embedding_size,
                                                    rnn_size,
                                                    num_layers,
                                                    questionswords2int)

1 个答案:

答案 0 :(得分:0)

据我所知,颠倒了论文Sequence to sequence learning with neural networks的输入

这个想法起源于机器翻译(我不确定它在其他领域(例如聊天机器人)中如何发挥作用。考虑以下情形(从原始论文借来的)。您要翻译

makefile

在这种情况下,我们必须先经历完整的源序列(A B C -> alpha beta gamma delta),然后才能开始预测ABC,那时译者可能已经忘记了alpha。但是当您这样做时,

A

您具有从C B A -> alpha beta gamma deltaA strong通讯链接,其中alpha与翻译中的A“可能”相关。

注意:这完全取决于您的翻译任务。如果目标语言是按照与源语言相反的顺序编写的(例如,考虑从主语-动词-宾语转换为宾语-动词-主语),我认为最好保持原始顺序。