Я читаю документацию библиотеки трансформатора из huggingface, и меня немного смущает прямой вывод BertModel.
В документах указано, что есть два вывода (и два дополнительных), которые:
- последнее скрытое состояние
- объединенный вывод
и в документации последнего предлагается, что:
Этот вывод обычно не является хорошим обобщением семантического содержания ввода, вам часто лучше усреднить или объединить последовательность скрытых состояний для всей входной последовательности.
Итак, мне кажется, что первый вывод может лучше представить семантику ввода. Однако в коде для BertForSequenceClassification
второй выход используется и для питания полностью подключенного слоя. Почему?
Это часть кода:
pooled_output = outputs[1]
pooled_output = self.dropout(pooled_output)
logits = self.classifier(pooled_output)