Я пытаюсь реализовать чат-бот, используя Tensorflow и его реализацию seq2seq.
После прочтения различных руководств (Чат-боты с Seq2Seq em>, учебное пособие по нейронному машинному переводу (seq2seq), Неконтролируемое глубокое обучение для вертикальных диалоговых чат-ботов ) и исходный документ Sequence to Sequence Learning with Neural Networks em>, я не смог найти объяснения, почему реализация 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]])
Зачем нужна эта прокладка?
Источник этого руководства.
Если я что-то упустил, пожалуйста, дайте мне знать.