分类模型可以输出其文本的embedding吗?LM模型可以输出其文本的embedding吗?答案:可以。
假设你已经用自己的数据fine-tuing好模型。
主要工具设备型号:
python3.6、torch1.7、transformer4.2、macOS、
那么怎么取?用哪个方式获取文本embedding呢?对不起,这个问题也在困扰着我,方法们各有千秋,也不知道如何选择了。那就选择最容易落地、能快速上线的——第一种方式:直接用 CLS Token 的 Embedding 作为句子表征。
BertModel这个类初始化的模型,输出中有pooler_out,可以作为文本的embedding。bert系列的其他类,没有这个输出选项。
例子:
`
from transformers import BertTokenizer, BertModel
import torch
tokenizer = BertTokenizer.from_pretrained(‘bert-base-chinese’)
model = BertModel.from_pretrained(‘bert-base-chinese’)
inputs = tokenizer(‘我是一个好人’, return_tensors=’pt’)
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
print(‘last_hidden_states:’ ,last_hidden_states)
pooler_output = outputs.pooler_output
print(‘—pooler_output: ‘, pooler_output)
输出:768维,也就是768个数,太长了,这里简单看下效果即可,没有将embedding的值全部粘贴出来。
Original: https://blog.csdn.net/pearl8899/article/details/116354207
Author: 凝眸伏笔
Title: Bert系列:如何用bert模型输出文本的embedding
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531065/
转载文章受原作者版权保护。转载请注明原作者出处!