【问题标题】:Access the output of several layers of pretrained DistilBERT model访问几层预训练 DistilBERT 模型的输出
【发布时间】:2020-03-20 19:02:08
【问题描述】:
我正在尝试从预训练的“DistilBERT”模型的几个不同层访问输出嵌入。 ("distilbert-base-uncased")
bert_output = model(input_ids, attention_mask=attention_mask)
bert_output 似乎只返回输入标记的最后一层的嵌入值。
【问题讨论】:
标签:
python
nlp
pytorch
bert-language-model
huggingface-transformers
【解决方案1】:
如果你想得到所有隐藏层的输出,你需要将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] 的形式提供