当前位置: 首页 > news >正文

HuggingFace Transformers教程(1)--使用AutoClass加载预训练实例

知识的搬运工又来啦

☆*: .。. o(≧▽≦)o .。.:*☆ 

【传送门==>原文链接:】https://huggingface.co/docs/transformers/autoclass_tutorial

 🚗🚓🚕🛺🚙🛻🚌🚐🚎🚑🚒🚚🚛🚜🚘🚔🚖🚍🚗🚓🚕🛺🚙🛻🚌🚐🚎🚑🚒🚚

由于存在许多不同的Transformer架构,因此为您的检查点(checkpoint)创建一个可能很具有挑战性。作为🤗Transformers核心理念的一部分,使库易于使用、简单和灵活,AutoClass自动推断并从给定的检查点加载正确的架构。from_pretrained()】方法允许您快速加载任何架构的预训练模型因此您无需花费时间和资源从头开始训练模型。生产此类检查点不可知代码意味着,如果您的代码适用于一个检查点,则它将适用于另一个检查点——只要它是为类似的任务进行训练的,即使架构不同。

请记住,架构是指模型的骨架,检查点是给定架构的权重。例如,BERT是一种架构,而bert-base-uncased是一个检查点。模型是一个通用术语,可以表示架构或检查点。

 

在本教程中,我们可以学习:

- 加载预训练的分词器。
- 加载预训练的图像处理器。
- 加载预训练的特征提取器。
- 加载预训练的处理器。
- 加载预训练模型。

AutoTokenizer

几乎每个NLP任务都始于分词器。分词器将您的输入转换为模型可以处理的格式。

使用AutoTokenizer.from_pretrained()加载分词器:

from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

然后按照下面所示进行分词:

sequence = "In a hole in the ground there lived a hobbit."
print(tokenizer(sequence))
{'input_ids': [101, 1999, 1037, 4920, 1999, 1996, 2598, 2045, 2973, 1037, 7570, 10322, 4183, 1012, 102], 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

AutoImageProcessor

对于视觉任务,图像处理器将图像处理成正确的输入格式。

from transformers import AutoImageProcessorimage_processor = AutoImageProcessor.from_pretrained("google/vit-base-patch16-224")

AutoFeatureExtractor

对于音频任务,特征提取器将音频信号处理成正确的输入格式。

使用AutoFeatureExtractor.from_pretrained()加载特征提取器:

from transformers import AutoFeatureExtractorfeature_extractor = AutoFeatureExtractor.from_pretrained("ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition"
)

AutoProcessor

多模态任务需要一个处理器来结合两种类型的预处理工具。例如,LayoutLMV2模型需要一个图像处理器来处理图像和一个分词器来处理文本;处理器将两者结合起来。

使用AutoProcessor.from_pretrained()加载处理器:

from transformers import AutoProcessorprocessor = AutoProcessor.from_pretrained("microsoft/layoutlmv2-base-uncased")

AutoModel

Pytorch

最后,AutoModelFor类允许您加载给定任务的预训练模型(请参见此处以获取可用任务的完整列表)。例如,使用AutoModelForSequenceClassification.from_pretrained()加载序列分类模型:

from transformers import AutoModelForSequenceClassificationmodel = AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased")

可以轻松地重复使用相同的检查点,以加载不同任务的架构:

from transformers import AutoModelForTokenClassificationmodel = AutoModelForTokenClassification.from_pretrained("distilbert-base-uncased")

对于PyTorch模型,from_pretrained()方法使用torch.load(),它在内部使用pickle,并已知存在安全问题。一般来说,永远不要加载可能来自不可信源或可能被篡改的模型。针对Hugging Face Hub上托管的公共模型,这种安全风险在一定程度上得到了缓解,因为每次提交时都会对其进行恶意软件扫描。请参阅Hub文档以了解最佳实践,例如使用GPG进行签名提交验证。

TensorFlow和Flax检查点不受影响,并且可以在PyTorch架构中使用from_pretrained方法的from_tf和from_flax参数来加载,以绕过此问题。

 通常,我们建议使用AutoTokenizer类和AutoModelFor类来加载预训练模型的实例。这将确保您每次都加载正确的架构。在下一个教程中,学习如何使用新加载的分词器、图像处理器、特征提取器和处理器对数据集进行预处理,以进行微调。

TensorFlow

最后,TFAutoModelFor类允许您加载给定任务的预训练模型(请参见此处以获取可用任务的完整列表)。例如,使用TFAutoModelForSequenceClassification.from_pretrained()加载序列分类模型:

from transformers import TFAutoModelForSequenceClassificationmodel = TFAutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased")

可以轻松地重复使用相同的检查点,以加载不同任务的架构:

from transformers import TFAutoModelForTokenClassificationmodel = TFAutoModelForTokenClassification.from_pretrained("distilbert-base-uncased")

通常,我们建议使用AutoTokenizer类和TFAutoModelFor类来加载预训练模型的实例。这将确保您每次都加载正确的架构。在下一个教程中,学习如何使用新加载的分词器、图像处理器、特征提取器和处理器对数据集进行预处理,以进行微调。

相关文章:

HuggingFace Transformers教程(1)--使用AutoClass加载预训练实例

知识的搬运工又来啦 ☆*: .。. o(≧▽≦)o .。.:*☆ 【传送门>原文链接:】https://huggingface.co/docs/transformers/autoclass_tutorial 🚗🚓🚕🛺🚙🛻🚌&#x1f6…...

Qt获取当前所用的Qt版本、编译器、位数等信息

//详细的Qt版本编译器位数 QString compilerString "<unknown>"; { #if defined(Q_CC_CLANG)QString isAppleString; #if defined(__apple_build_version__)isAppleString QLatin1String(" (Apple)"); #endifcompilerString QLatin1String("…...

《C和指针》笔记31:多维数组的数组名、指向多维数组的指针、作为函数参数的多维数组

文章目录 1. 指向多维数组的数组名2. 指向多维数组的指针3. 作为函数参数的多维数组 1. 指向多维数组的数组名 我们知道一维数组名的值是一个指针常量&#xff0c;它的类型是“指向元素类型的指针”&#xff0c;它指向数组的第1个元素。那么多维数组的数组名代表什么呢&#x…...

【伪彩色图像处理】将灰度图像转换为彩色图像研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Go Gin Gorm Casbin权限管理实现 - 2. 使用Gorm存储Casbin权限配置以及`增删改查`

文章目录 0. 背景1. 准备工作2. 权限配置以及增删改查2.1 策略和组使用规范2.2 用户以及组关系的增删改查2.2.1 获取所有用户以及关联的角色2.2.2 角色组中添加用户2.2.3 角色组中删除用户 2.3 角色组权限的增删改查2.3.1 获取所有角色组权限2.3.2 创建角色组权限2.3.3 修改角色…...

DNDC模型的温室气体排放分析

DNDC&#xff08;Denitrification-Decomposition&#xff0c;反硝化-分解模型&#xff09;是目前国际上最为成功的模拟生物地球化学循环的模型之一&#xff0c;自开发以来&#xff0c;经过不断完善和改进&#xff0c;从模拟简单的农田生态系统发展成为可以模拟几乎所有陆地生态…...

vue、全局前置守卫

需求&#xff1a;在使用商城app的时候&#xff0c;游客&#xff08;没有登录的用户&#xff09;可以看到商品信息&#xff0c;当游客点击添加购物车的时候&#xff0c;我们需要把游客“拦”到登录页面&#xff0c;登陆后&#xff0c;才可以添加商品。 游客只可以看得到部分页面…...

OpenWRT、Yocto 、Buildroot和Ubuntu有什么区别

OpenWRT&#xff1a; 用途&#xff1a;OpenWRT 是一个专注于路由器和嵌入式网络设备的Linux发行版。它提供了一个优化的Linux环境&#xff0c;旨在将网络设备变成功能丰富、高度可定制的路由器。 包管理器&#xff1a;OpenWRT 使用 opkg 包管理器&#xff0c;它是一个轻量级的…...

数据挖掘(3)特征化

从数据分析角度&#xff0c;DM分为两类&#xff0c;描述式数据挖掘&#xff0c;预测式数据挖掘。描述式数据挖掘是以简介概要的方式描述数据&#xff0c;并提供数据的一般性质。预测式数据挖掘分析数据建立模型并试图预测新数据集的行为。 DM的分类&#xff1a; 描述式DM&#…...

【RabbitMQ 实战】08 集群原理剖析

上一节&#xff0c;我们用docker-compose搭建了一个RabbitMQ集群&#xff0c;这一节我们来分析一下集群的原理 一、基础概念 1.1 元数据 前面我们有介绍到 RabbitMQ 内部有各种基础构件&#xff0c;包括队列、交换器、绑定、虚拟主机等&#xff0c;他们组成了 AMQP 协议消息…...

2023年 2月3月 工作经历

2月 #pragma make_public(type) 托管C导出传统C类&#xff0c;另一个托管C项目使用不了。传统C类make_public后&#xff0c;就可以使用了。对模板类无效&#xff0c;比如&#xff1a;std::string。 C#线程绑定CPU 我的方案&#xff1a; 假定我们想把 CPU0 设置成专有CPU。 定…...

selenium京东商城爬取

该项目主要参考与:http://c.biancheng.net/python_spider/selenium-case.html 你看完上述项目内容之后&#xff0c;会发现京东登录是一个比较坑的点&#xff0c;selenium控制浏览器没有登录京东,导致我们自动爬取网页被重定向到京东登录注册页面。 因此&#xff0c;我们要单独…...

用pandas处理数据时,使变量能够在不同的Notebook会话页面进行传递,魔法命令%store

【需求来源】 在使用pandas时&#xff0c;有的时候我想将.ipynb文件分开写 其中一个写清洗数据代码另外一个写数据可视化代码 【解决方案】 但是会涉及到变量转移问题&#xff0c;这个时候我通常使用的方法是&#xff1a; 1、在清洗完数据后导出到本地 2、在文件后面增加当…...

选择适合户外篷房企业的企业云盘解决方案

“户外篷房企业用什么企业云盘好&#xff1f;Zoho WorkDrive企业网盘可以帮助户外篷房企业实现文档统一管理、提高工作效率、加强团队协作&#xff0c;并且支持各种文件类型的预览和编辑。” S公司是一家注重管理规范的大型户外篷房企业&#xff0c;已经有10余年的经验。作为设…...

松鼠搜索算法(SSA)(含MATLAB代码)

先做一个声明&#xff1a;文章是由我的个人公众号中的推送直接复制粘贴而来&#xff0c;因此对智能优化算法感兴趣的朋友&#xff0c;可关注我的个人公众号&#xff1a;启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法&#xff0c;经典的&#xff0c;或者是近几年…...

折半+dp之限制转状态+状压:CF1767E

https://vjudge.net/problem/CodeForces-1767E/origin 首先40&#xff0c;必然折半。然后怎么做&#xff1f; 分析性质。每次可以走1步or2步&#xff0c;等价什么&#xff1f;等价任意相邻2个必选一个&#xff01;然后就可以建图 这个图是个限制图&#xff0c;我们折半后可以…...

如何写出优质代码

(本文转载自其他博主但是个人忘记了出处) 优质代码是什么&#xff1f; 优质代码是指那些易于理解、易于维护、可读性强、结构清晰、没有冗余、运行效率高、可复用性强、稳定性好、可扩展性强的代码。 这类代码不仅能够准确执行预期功能&#xff0c;同时也便于其他开发者理解…...

ChatGLM2-6B的通透解析:从FlashAttention、Multi-Query Attention到GLM2的微调、源码解读

前言 本文最初和第一代ChatGLM-6B的内容汇总在一块&#xff0c;但为了阐述清楚FlashAttention、Multi-Query Attention等相关的原理&#xff0c;以及GLM2的微调、源码解读等内容&#xff0c;导致之前那篇文章越写越长&#xff0c;故特把ChatGLM2相关的内容独立抽取出来成本文 …...

3D人脸生成的论文

一、TECA 1、论文信息 2、开源情况&#xff1a;comming soon TECA: Text-Guided Generation and Editing of Compositional 3D AvatarsGiven a text description, our method produces a compositional 3D avatar consisting of a mesh-based face and body and NeRF-based ha…...

解决问题:可以用什么方式实现自动化部署

自动化部署可以使用多种工具来实现&#xff1a; 脚本编写&#xff1a;可以使用 Bash、Python 等编写脚本来实现自动化部署。例如&#xff0c;可以使用 Bash 脚本来自动安装、配置和启动应用程序。 配置管理工具&#xff1a;像 Ansible、Puppet、Chef、Salt 等配置管理工具可以…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...