Каковы вход и выход трансформатора? - PullRequest
1 голос
/ 29 сентября 2019

У меня есть вопросы о реализации Google Transformer здесь .

  • В функции train_step(input, tar): измерение inp представляет собой тензор 256 * 40 итрансформатор возвращает тензор 256 * 39 * 8089. Является ли каждая строка в inp предложением? Я ожидал, что Transformer возьмет пакет предложений (размер двумерной матрицы batch_size, в котором каждая строка является словом) и рассчитает весовые коэффициенты внимания и результаты сразу, а затем передаст их в декодер (см. здесь .). Однако я не вижу, чтобы это было реализовано в коде.

  • В функции train_step(input, tar): «предсказания» - это тензор 256 * 39 * 8089. Это [размер пакета, максимальное количество слов в предложении, целевой размер словаря]? Как функция loss_function рассчитывает потери, когда этот формат отличается от `` `tar_real``, который равен [256 * 39]?

  • В def evaluate(inp_sentence): Почему на каждой итерации он отправляет трансформатору весь вход энкодера? Я ожидаю, что кодер вычисляет вес внимания и выводит один раз, а затем внутри цикла for мы отправляем выходные данные о вниманиях и прогнозах.

Спасибо

...