BERT - 直接调用transformers.BertModel, BertTokenizerAPI不进行任何微调

news2025/7/13 11:54:38

本节代码将使用 transformers 库加载预训练的BERT模型和分词器(Tokenizer),并处理文本输入。

1. 加载预训练模型和分词器

from transformers import BertTokenizer, BertModel

model_path = "/Users/azen/Desktop/llm/models/bert-base-chinese"

tokenizer = BertTokenizer.from_pretrained(model_path)
model = BertModel.from_pretrained(model_path)
  • BertTokenizer.from_pretrained(model_path)

    • 加载预训练的BERT分词器。model_path 是预训练模型的路径或名称。分词器会将文本分割成BERT模型可以理解的标记(tokens)。

  • BertModel.from_pretrained(model_path)

    • 加载预训练的BERT模型。model_path 是预训练模型的路径或名称。BERT模型可以用于多种自然语言处理任务,如文本分类、问答系统等。

2. 处理文本输入

text = "my dog is cute, he likes playing"
inputs = tokenizer(text)
  • tokenizer(text)

    • 将输入文本 text 转换为BERT模型可以处理的格式。具体来说,tokenizer 会执行以下操作:

      1. 分词:将文本分割成标记(tokens)。

      2. 添加特殊标记:在文本的开头添加 [CLS] 标记,在结尾添加 [SEP] 标记。

      3. 转换为ID:将每个标记转换为对应的ID(索引)。

      4. 生成注意力掩码:生成一个掩码,用于标记哪些位置是有效的输入(非填充部分)。

  • 如果不想添加 [CLS][SEP] 标记,可以在调用 tokenizer 时设置 add_special_tokens=False

text = "my dog is cute, he likes playing"
inputs = tokenizer(text, add_special_tokens=False, return_tensors="pt")
    输出inputs 是一个字典,包含以下内容:
    • input_ids:输入标记的ID列表。

    • token_type_ids:段嵌入索引列表。

    • attention_mask:注意力掩码。

    3. 完整示例

    以下是一个完整的示例,展示如何将文本输入传递给BERT模型,并获取模型的输出:

    from transformers import BertTokenizer, BertModel
    
    model_path = "/Users/azen/Desktop/llm/models/bert-base-chinese"
    
    tokenizer = BertTokenizer.from_pretrained(model_path)
    model = BertModel.from_pretrained(model_path)
    
    text = "my dog is cute, he likes playing"
    inputs = tokenizer(text, return_tensors="pt")  # 返回PyTorch张量
    
    # 获取输入张量
    input_ids = inputs["input_ids"]
    attention_mask = inputs["attention_mask"]
    
    # 将输入传递给BERT模型
    outputs = model(input_ids, attention_mask=attention_mask)
    
    # 获取模型的输出
    last_hidden_state = outputs.last_hidden_state  # 最后一层的隐藏状态
    pooler_output = outputs.pooler_output  # [CLS]标记的输出
    
    print(last_hidden_state.shape)  # 输出形状:(batch_size, seq_len, hidden_size)
    print(pooler_output.shape)  # 输出形状:(batch_size, hidden_size)

    需复现完整代码

    
    
    from transformers import AutoModel, AutoTokenizer
    from transformers import BertModel, BertTokenizer
    
    from transformers import Bert
    
    
    model_path = "/Users/azen/Desktop/llm/models/bert-base-chinese"
    
    tokenizer = BertTokenizer.from_pretrained(model_path)
    model = BertModel.from_pretrained(model_path)
    
    
    text = "my dog is cute, he likes playing"
    inputs = tokenizer(text)
    
    
    pass

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2333106.html

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

    相关文章

    声学测温度原理解释

    已知声速,就可以得到温度。 不同温度下的胜诉不同。 25度的声速大约346m/s 绝对温度-273度 不同温度下的声速。 FPGA 通过测距雷达测温度,固定测量距离,或者可以测出当前距离。已知距离,然后雷达发出声波到接收到回波的时间&a…

    Cuto壁纸 2.6.9 | 解锁所有高清精选壁纸,无广告干扰

    Cuto壁纸 App 提供丰富多样的壁纸选择,涵盖动物、风景、创意及游戏动漫等类型。支持分类查找与下载,用户可轻松将心仪壁纸设为手机背景,并享受软件内置的编辑功能调整尺寸。每天更新,确保用户总能找到新鲜、满意的壁纸。 大小&am…

    C语言 AI 通义灵码 VSCode插件安装与功能详解

    在 C 语言开发领域,一款高效的编码助手能够显著提升开发效率和代码质量。 通义灵码,作为阿里云技术团队打造的智能编码助手,凭借其强大的功能,正逐渐成为 C 语言开发者的新宠。 本文将深入探讨通义灵码在 C 语言开发中的应用&am…

    二分查找5:852. 山脉数组的峰顶索引

    链接:852. 山脉数组的峰顶索引 - 力扣(LeetCode) 题解: 事实证明,二分查找不局限于有序数组,非有序的数组也同样适用 二分查找主要思想在于二段性,即将数组分为两段。本体就可以将数组分为ar…

    【模拟电路】稳压二极管/齐纳二极管

    齐纳二极管也被称为稳压二极管,是一种特殊的二极管,其工作原理是利用PN结的反向击穿状态。在齐纳二极管中,当反向电压增加到一定程度,即达到齐纳二极管的击穿电压时,反向电流会急剧增加,但此时齐纳二极管的电压却基本保持不变。这种特性使得齐纳二极管可以作为稳压器或电…

    项目周期过长,如何拆分里程碑

    应对项目周期过长,合理拆分里程碑需要做到:明确项目整体目标与阶段目标、合理进行任务细分与分组、设定阶段性里程碑节点、实施有效的进度跟踪与反馈机制、灵活进行里程碑调整。其中,明确项目整体目标与阶段目标尤为关键。这能够帮助团队在长…

    蓝桥杯刷题总结 + 应赛技巧

    当各位小伙伴们看到这篇文章的时候想必蓝桥杯也快开赛了,那么本篇文章博主就来总结一下一些蓝桥杯的应赛技巧,那么依旧先来走个流程 那么接下来我们分成几个板块进行总结 首先是一些基本语法 编程语言的基本语法 首先是数组,在存数据的时候…

    希哈表的学习

    #include <stdio.h> #include <stdlib.h> #include "uthash.h"typedef struct {int id; // 学号&#xff0c;作为keychar name[20]; // 姓名&#xff0c;作为valueUT_hash_handle hh; // 必须有这个字段 } Student;Student* studen…

    Qt之OpenGL使用Qt封装好的着色器和编译器

    代码 #include "sunopengl.h"sunOpengl::sunOpengl(QWidget *parent) {}unsigned int VBO,VAO; float vertices[]{0.5f,0.5f,0.0f,0.5f,-0.5f,0.0f,-0.5f,-0.5f,0.0f,-0.5f,0.5f,0.0f };unsigned int indices[]{0,1,3,1,2,3, }; unsigned int EBO; sunOpengl::~sunO…

    零基础开始学习鸿蒙开发-智能家居APP离线版介绍

    目录 1.我的小屋 2.查找设备 3.个人主页 前言 好久不发博文了&#xff0c;最近都忙于面试&#xff0c;忙于找工作&#xff0c;这段时间终于找到工作了。我对鸿蒙开发的激情依然没有减退&#xff0c;前几天做了一个鸿蒙的APP&#xff0c;现在给大家分享一下&#xff01; 具体…

    不再卡顿!如何根据使用需求挑选合适的电脑内存?

    电脑运行内存多大合适&#xff1f;在选购或升级电脑时&#xff0c;除了关注处理器的速度、硬盘的容量之外&#xff0c;内存&#xff08;RAM&#xff09;的大小也是决定电脑性能的一个重要因素。但究竟电脑运行内存多大才合适呢&#xff1f;这篇文章将帮助你理解不同使用场景下适…

    华为云 云化数据中心 CloudDC | 架构分析与应用场景

    云化数据中心 CloudDC 云化数据中心 (CloudDC)是一种满足传统DC客户云化转型诉求的产品&#xff0c;支持将客户持有服务器设备部署至华为云机房&#xff0c;通过外溢华为云的基础设施管理、云化网络、裸机纳管、确定性运维等能力&#xff0c;帮助客户DC快速云化转型。 云化数据…

    【射频仿真学习笔记】变压器参数的Mathematica计算以及ADS仿真建模

    变压器模型理论分析 对于任意的无源电路或者等效电路&#xff0c;当画完原理图后&#xff0c;能否认为已经知道其中的两个节点&#xff1f;vin和vout之间的明确解析解 是否存在一个通用的算法&#xff0c;将这里的所有元素都变成了符号&#xff0c;使得这个算法本身就是一个函…

    Linux系统Docker部署开源在线协作笔记Trilium Notes与远程访问详细教程

    &#xfeff;今天和大家分享一款在 G 站获得了 26K的强大的开源在线协作笔记软件&#xff0c;Trilium Notes 的中文版如何在 Linux 环境使用 docker 本地部署&#xff0c;并结合 cpolar 内网穿透工具配置公网地址&#xff0c;轻松实现远程在线协作的详细教程。 Trilium Notes 是…

    C++基础精讲-01

    1C概述 1.1初识C 发展历程&#xff1a; C 由本贾尼・斯特劳斯特卢普在 20 世纪 70 年代开发&#xff0c;它在 C 语言的基础上增加了面向对象编程的特性&#xff0c;最初被称为 “C with Classes”&#xff0c;后来逐渐发展成为独立的 C 语言。 语言特点 &#xff08;1&#x…

    为什么Java不支持多继承?如何实现多继承?

    一、前言 Java不支持多继承&#xff08;一个类继承多个父类&#xff09;主要出于文中设计考虑&#xff1b;核心目的是简化语言复杂性并避免潜在的歧义性问题。 二、直接原因&#xff1a;菱形继承/钻石继承问题&#xff08;Diamond Problem&#xff09; 假设存在如下继承关系&…

    [特殊字符] Spring Boot 日志系统入门博客大纲(适合初学者)

    一、前言 &#x1f4cc; 为什么日志在项目中如此重要&#xff1f; 在开发和维护一个后端系统时&#xff0c;日志就像程序运行时的“黑匣子”&#xff0c;帮我们记录系统的各种行为和异常。一份良好的日志&#xff0c;不仅能帮助我们快速定位问题&#xff0c;还能在以下场景中…

    Express中间件(Middleware)详解:从零开始掌握(1)

    1. 中间件是什么&#xff1f; 想象中间件就像一个"加工流水线"&#xff0c;请求(Request)从进入服务器到返回响应(Response)的过程中&#xff0c;会经过一个个"工作站"进行处理。 简单定义&#xff1a;中间件是能够访问请求对象(req)、响应对象(res)和下…

    现代工业测试的核心支柱:电机试验工作台?(北重机械厂家)

    电机试验工作台是现代工业测试中的核心支柱之一。这种工作台通常用于对各种类型的电机进行性能测试、负载测试和耐久性测试。通过电机试验工作台&#xff0c;工程师可以评估电机的效率、功率输出、转速、扭矩、温度等关键参数&#xff0c;从而确保电机的设计符合要求&#xff0…

    oracle 11g密码长度和复杂度查看与设置

    verify_function_11G 的密码复杂性要求: 密码长度至少为 8 个字符。 密码必须包含至少一个数字和一个字母字符。 密码不能与用户名相同或相似。 密码不能是服务器名或其变体。 密码不能是常见的弱密码&#xff08;如 welcome1、oracle123 等&#xff09;。 注意事项&…