Я читал статью о машинном переводе, в котором используется проекционный слой. Его кодировщик имеет 6 двунаправленных слоев LSTM. Если размер встраивания входных данных равен 512, сколько будет размер выходных данных кодировщика? 512 * 2 ** 5?
Ссылка на статью: https://www.aclweb.org/anthology/P18-1008.pdf
Не совсем. К сожалению, рисунок 1 в упомянутой статье немного вводит в заблуждение. Дело не в том, что шесть уровней кодирования параллельны, как можно понять из рисунка, а в том, что эти уровни являются последовательными, что означает, что скрытое состояние / вывод из предыдущего уровня используется в последующий слой в качестве входа.
Это, а также тот факт, что входное (встраиваемое) измерение НЕ является выходным измерением слоя LSTM (на самом деле это
2 * hidden_size
), изменяет ваше выходное измерение именно на это:2 * hidden_size
, прежде чем оно будет помещено в последний слой проекции, который снова меняет размер в зависимости от ваших требований.Мне не совсем понятно, что описание add делает в слое, но если вы посмотрите на эталонная реализация, похоже, не имеет отношения к ответу. В частности, обратите внимание на то, как функция кодирования в основном
Очевидно, здесь происходит немного больше, но это иллюстрирует основной функциональный блок сети.
Спасибо! Эталонная реализация мне очень помогла. — person kintsuba; 18.02.2020
Если это ответ на ваш вопрос, попробуйте принять ответ, чтобы пометить этот вопрос как выполненный. — person kintsuba; 18.02.2020