Будет ли оптимальным применять mean(-1) для выхода TransformerEncoder?

Рейтинг: 0Ответов: 0Опубликовано: 04.07.2023

Классы типа Transformer имеют на выходе ту же размерность, что и на входе. Если мне нужно лишь одно значение, будет ли оптимальным применить функцию mean для сжатия всех выходящих значений? Т.е. нужно преобразовать некотрую последовательность не фиксированной длины в фиксированное количество выходов, какие варианты для этого оптимальны?

Например такие варианты:

# трасформер возвращает тензор: [batch,sequence,d_model]
# и все выходные значения по каждому батчу ужимаются в одно значение
result = self.transformer(x).flatten(1,2).mean(1)

или вариант, если на выходе нужно несколько значений:

# размерность d_model преобразуется к желаемой размерности
# при помощи nn.Linear(d_model, needSize),
# а вся последовательность ужимается
# на выходе: [batch,needSize]
x = self.transformer(x)
result = self.linear(x).mean(1)

или вариант наоборот:

# сначала последовательность пакуется при помощи mean,
# а потом при помощи nn.Linear(d_model, needSize)
# преобразуется к желаемой размерности
result = self.linear(self.transformer(x).mean(1))

Ответы

Ответов пока нет.