Доступ к выводу нескольких слоев предварительно подготовленной модели DistilBERT - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь получить доступ к выходным вложениям из нескольких различных слоев предварительно подготовленной модели "DistilBERT". («distilbert-base-uncased»)

bert_output = model(input_ids, attention_mask=attention_mask)

Кажется, что bert_output возвращает только значения вложения последнего слоя для входных токенов.

1 Ответ

2 голосов
/ 20 марта 2020

Если вы хотите получить выходные данные всех скрытых слоев, вам нужно добавить output_hidden_states=True kwarg в вашу конфигурацию.

Ваш код будет выглядеть примерно так:

from transformers import DistilBertModel, DistilBertConfig

config = DistilBertConfig.from_pretrained('distilbert-base-cased', output_hidden_states=True)
model = DistilBertModel.from_pretrained('distilbert-base-cased', config=config)

Скрытые слои будут доступны как bert_output[2]

...