Сколько стоит размер некоторых двунаправленных слоев LSTM? - PullRequest
2 голосов
/ 11 февраля 2020

Я прочитал статью о машинном переводе, и она использует проекционный слой. Его кодер имеет 6 двунаправленных слоев LSTM. Если размер входного вложения равен 512, сколько будет размер выходного сигнала энкодера? 512 * 2 ** 5?

Ссылка на бумагу: https://www.aclweb.org/anthology/P18-1008.pdf

1 Ответ

1 голос
/ 11 февраля 2020

Не совсем. К сожалению, рисунок 1 в упомянутой статье немного вводит в заблуждение. Дело не в том, что шесть уровней кодирования параллельны, как можно понять из рисунка, а в том, что эти уровни последовательны , что означает, что скрытое состояние / выход из предыдущего уровня используется в последующий слой в качестве входного Ваше выходное измерение будет точно таким: 2 * hidden_size, прежде чем оно будет помещено в конечный проекционный слой, который снова меняет размер в зависимости от ваших спецификаций.

Мне не совсем понятно, что делает описание add в слое, но если вы посмотрите на эталонную реализацию , то она, кажется, не имеет отношения к ответ. В частности, обратите внимание, что функция кодирования в основном

def encode(...):
    encode_inputs = self.embed(...)
    for l in num_layers:
        prev_input = encode_inputs

        encode_inputs = self.nth_layer(...)
        # ...

Очевидно, что здесь происходит немного больше, но это иллюстрирует основной c функциональный блок сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...