为什么在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)
答案 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 delta
到A
的 strong通讯链接,其中alpha
与翻译中的A
“可能”相关。
注意:这完全取决于您的翻译任务。如果目标语言是按照与源语言相反的顺序编写的(例如,考虑从主语-动词-宾语转换为宾语-动词-主语),我认为最好保持原始顺序。