访问几层预训练的DistilBERT模型的输出

时间:2020-03-20 19:02:08

标签: python nlp pytorch bert-language-model huggingface-transformers

我正在尝试从预训练的“ DistilBERT”模型的几个不同层访问输出嵌入。 (“ distilbert-base-uncased”)

bert_output = model(input_ids, attention_mask=attention_mask)

bert_output似乎仅返回输入令牌的最后一层的嵌入值。

1 个答案:

答案 0 :(得分:2)

如果要获取所有隐藏层的输出,则需要在配置中添加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]的形式可用