Будет ли оптимальным применять mean(-1) для выхода TransformerEncoder?
Классы типа 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))
Источник: Stack Overflow на русском