我已经成功地构建了一个情绪分析工具,BertForSequenceClassification
从huggingface/transformers将 $tsla 推文分类为正面或负面。
但是,我不知道如何[CLS]
从我的微调模型中获取每条推文的特征向量(更具体地说是 的嵌入)。
使用模型的更多信息:
model = BertForSequenceClassification.from_pretrained(OUTPUT_DIR, num_labels=num_labels)
model.config.output_hidden_states = True
tokenizer = BertTokenizer(OUTPUT_DIR+'vocab.txt')
但是,当我运行下面的代码时,output
变量只包含 logits。
model.eval()
eval_loss = 0
nb_eval_steps = 0
preds = []
for input_ids, input_mask, segment_ids, label_ids in tqdm_notebook(eval_dataloader, desc="Evaluating"):
input_ids = input_ids.to(device)
input_mask = input_mask.to(device)
segment_ids = segment_ids.to(device)
label_ids = label_ids.to(device)
with torch.no_grad():
output = model(input_ids,token_type_ids= segment_ids,attention_mask= input_mask)