基于TensorFlow2.0,使用Bert模型生成词向量和句向量

一、前言

使用pytorch和TensorFlow调用的包是不一样的,这里只有TensorFlow的简单教程

一、使用步骤

1.安装库

pip install transformers

2.引入库

from transformers import AutoTokenizer,TFAutoModel
import tensorflow as tf

2.加载预训练模型

先下载预训练模型,模型地址
下载好的模型结构如下
基于TensorFlow2.0,使用Bert模型生成词向量和句向量_第1张图片
加载模型

path="bert-base-uncased"
tokenizer=AutoTokenizer.from_pretrained(path)
model=TFAutoModel.from_pretrained(path)

3.编码句子

utt=['i am a student','how are you']
inputs=tokenizer(utt,return_tensors="tf",padding="max_length",truncation=True,max_length=20)
x_train=model(inputs)

4.运行结果

print("词向量形状",tf.shape(x_train[0]))
print("句向量形状",tf.shape(x_train[1]))

基于TensorFlow2.0,使用Bert模型生成词向量和句向量_第2张图片
输出分两部分,第一部分是词向量,第二部分是句向量
第一部分是对每个句子的每个词编码为768的词向量
第二部分是对每个句子整体编码为768维向量


总结

本文通过transformer加载bert预训练模型,完成任意输入的句子级别和词级别的Embeddeding。如果提供的模型下载地址无法打开,可以留言告知。

你可能感兴趣的:(tensorflow,python,人工智能,深度学习,机器学习)