首页 > 其他分享 >Bert中文预训练模型(Bert-base-chinese)

Bert中文预训练模型(Bert-base-chinese)

时间:2024-07-19 22:26:02浏览次数:9  
标签:Bert chinese ... text base model bert

介绍

Bert-base-chinese模型是一个在简体和繁体中文文本上训练得到的预训练模型,具有以下特点:

  • 12个隐层
  • 输出768维张量
  • 12个自注意力头
  • 110M参数量

该模型的主要作用是获取每个汉字的向量表示,后续通过微调可应用于各种简体和繁体中文任务。

使用

import torch
from transformers import BertTokenizer, BertModel

# 第一步:离线下载
# from transformers import BertModel, BertTokenizer
# model_name = "bert-base-chinese"
# # 下载模型和分词器
# model = BertModel.from_pretrained(model_name)
# tokenizer = BertTokenizer.from_pretrained(model_name)
# # 保存模型和分词器到本地路径
# model.save_pretrained("./bert-base-chinese")
# tokenizer.save_pretrained("./bert-base-chinese")

# 第二步:加载模型和分词器
model_path = "./bert-base-chinese"
tokenizer = BertTokenizer.from_pretrained(model_path)
model = BertModel.from_pretrained(model_path)


def encode_text_with_bert(text):
    """
    使用bert-base-chinese模型对文本进行编码
    :param text: 输入的文本
    :return: 编码后的张量
    """
    # 使用tokenizer对文本进行编码,并去掉起始和结束标志
    encoded_text = tokenizer.encode(text)[1: -1]
    # 把列表转成张量
    encoded_tensor = torch.LongTensor([encoded_text])

    # 不自动进行梯度计算
    with torch.no_grad():
        output = model(encoded_tensor)

    # 返回编码后的张量(取last_hidden_state)
    return output[0]


if __name__ == '__main__':
    text1 = "你好,美丽中国"
    result = encode_text_with_bert(text1)
    print('text1编码的形状:', result.size())
    print('text1编码:\n', result)

text1编码的形状: torch.Size([1, 7, 768])
text1编码:
 tensor([[[ 0.0781, -0.7386, -0.5120,  ...,  1.0695, -0.4252, -0.3970],
         [ 0.3118, -0.2283, -0.2513,  ..., -0.0618,  0.8715, -0.0833],
         [ 0.0287, -0.4937, -0.5554,  ...,  0.1643,  0.8771,  0.0019],
         ...,
         [-0.3068, -0.3406,  0.0525,  ...,  0.5506,  0.8915, -0.3713],
         [-0.1079, -0.0951, -0.1549,  ...,  0.8432,  0.7255, -0.5235],
         [-0.0414, -0.3786,  0.1590,  ...,  0.3844,  0.7464, -0.4266]]]) 

标签:Bert,chinese,...,text,base,model,bert
From: https://blog.csdn.net/weixin_74254879/article/details/140441514

相关文章

  • (ECCV2024论文解读)GPSFormer: A Global Perception and Local Structure Fitting-based
    目录摘要1、引言2、方法2.1 背景3.2 全局感知模块2.3 局部结构拟合卷积泰勒级数局部结构拟合卷积显式结构引入2.4 GPSFormer点云分类部件分割任务3、实验3.13D形状分类ScanObjectNN数据集上的形状分类ModelNet40数据集上的形状分类3.2部件分割3.3小样本分类3.4消融研究全局感......
  • js上传base64
    <!DOCTYPEhtml><html><head><title>UploadImage</title></head><body><inputtype="file"id="fileInput"><buttononclick="uploadImage()">UploadImage</button&g......
  • Chromium源码阅读(11):了解chromium base的raw-ptr
    chromiumbase的rawptr.h引起了我的注意,常见的ptr封装有refed_ptr、weak_ptr等。raw_ptr还要封装吗?那一定是有特殊的意义。果然,raw_ptr.md引入眼帘:原文地址:https://chromium.googlesource.com/chromium/src/+/HEAD/base/memory/raw_ptr.mdraw_ptr简介raw_ptr与原始指针......
  • FedNAS: Federated Deep Learning via Neural Architecture Search-_BaseLine-FedNAS
    背景与挑战:介绍FL,引出数据异构问题和数据不可见性,因此需要大量的人力来定制更好的模型架构,因为设备异构性,边缘设备需要更高的计算负担和通信成本。介绍解决数据异构的相关工作,指出这些工作需要强大的先验假设。预定义的模型不一定是最优的贡献:1.提出FedNAS方法,在边缘设备之间......
  • Firebase 功能无法正确构建
    我只是想使用打字稿构建一个firebase函数。现在我的文件如下:import{onRequest}from"firebase-functions/v2/https";import*asloggerfrom"firebase-functions/logger";import*asadminfrom"firebase-admin";admin.initializeApp();//Startw......
  • hbase写入数据库 BufferedMutator入库
    hbase写入数据库BufferedMutator入库如何使用HBaseBufferedMutator入库1.流程图创建HBase连接创建BufferedMutator构建Put对象将Put对象加入BufferedMutator释放资源2.关系图erDiagramHBase}|--|BufferedMutator:使用BufferedMutator}|..|Put:包含3.详......
  • 只会建数据库怎么写API?database2api 能帮到你!
    database2api意为DataBasetoAPI,即只要有数据库,就可以生成开放API。database2api是一款强大而便捷的工具,主要功能是依据现有的数据库自动生成开放的API接口,能够为开发者大幅节省时间与精力,尤其适用于那些已拥有数据库且需要提供API接口,或者仅会构建数据库、而需要迅速实......
  • php中遇到new $a($b)的解法 imagick类的利用绕过open_basedir
    今天做题遇到一个新的知识点,接下来回顾下。源码<?phperror_reporting(0);ini_set('open_basedir',__DIR__.":/tmp");define("FUNC_LIST",get_defined_functions());classfumo_backdoor{public$path=null;public$argv=null;publ......
  • 【头歌】HBase开发: Java API 管理表 答案
    专栏已收集头歌大数据所有答案第一关JavaAPI获取表的列表:packagestep1; importjava.util.ArrayList;importjava.util.List; importorg.apache.hadoop.conf.*;importorg.apache.hadoop.hbase.*;importorg.apache.hadoop.hbase.client.*;importorg.apache.......
  • Task2:从baseline代码详解入门深度学习
    Task2:从baseline代码详解入门深度学习准备工作数据集数据集被划分为三种,分别是:训练集,开发集测试集。训练集数量最多,用于训练模型,开发集用于在训练中不断调整模型的参数,架构,测试集用于测试模型模型基于seq2seq模型主要由encoderdecoder两部分构成使用GRU模型大致可以理......