我正在尝试使用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]])
为什么需要这个填充?
本教程的如果我遗失了什么,请告诉我。
答案 0 :(得分:0)
您需要将序列(带有一些id,在您的情况下为0)填充到最大序列长度。您想要这样做的原因是序列可以适合数组(张量)对象并在同一步骤中处理。