为什么Tensoflow seq2seq将所有序列填充到相同的固定长度?

时间:2018-01-19 11:02:17

标签: tensorflow chatbot sequences

我正在尝试使用Tensorflow及其seq2seq的实现来实现Chatbot。

阅读了不同的教程( Chatbots with Seq2Seq Neural Machine Translation (seq2seq) Tutorial Unsupervised Deep Learning for Vertical Conversational Chatbots ),以及原始文件 Sequence to Sequence Learning with Neural Networks ,我找不到为什么Tensorflow seq2seq实现将所有序列(输入和输出)填充到相同的解释固定长度

示例:

输入数据由整数序列组成:

x = [[5, 7, 8], [6, 3], [3], [1]]

RNN需要不同的布局。序列短,然后最长的序列用零填充到最后。此布局称为time-major

x现在是array([[5, 6, 3, 1], [7, 3, 0, 0], [8, 0, 0, 0]])

为什么需要这个填充?

本教程的

Source

如果我遗失了什么,请告诉我。

1 个答案:

答案 0 :(得分:0)

您需要将序列(带有一些id,在您的情况下为0)填充到最大序列长度。您想要这样做的原因是序列可以适合数组(张量)对象并在同一步骤中处理。