Transformers学习笔记5

2023-10-31

hugface hub上不仅有预训练模型还有数据集

下载数据集

from datasets import load_dataset

raw_datasets = load_dataset("glue", "mrpc")
raw_datasets
DatasetDict({
train: Dataset({
features: ['sentence1', 'sentence2', 'label', 'idx'],
num_rows: 3668
})
validation: Dataset({
features: ['sentence1', 'sentence2', 'label', 'idx'],
num_rows: 408
})
test: Dataset({
features: ['sentence1', 'sentence2', 'label', 'idx'],
num_rows: 1725
})
})
  1. 默认下载路径为:

~/.cache/huggingface/datasets.

  1. 下载的数据集一个字典类型

查看数据集类型

raw_train_dataset.features
{'sentence1': Value(dtype='string', id=None),
'sentence2': Value(dtype='string', id=None),
'label': ClassLabel(num_classes=2, names=['not_equivalent', 'equivalent'], names_file=None, id=None),
'idx': Value(dtype='int32', id=None)}

一次输入2个句子(不用了)

from transformers import AutoTokenizer

checkpoint = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
inputs = tokenizer("This is the first sentence.", "This is the second one.")
inputs
{
'input_ids': [101, 2023, 2003, 1996, 2034, 6251, 1012, 102, 2023, 2003, 1996, 2117, 2028, 1012, 102],
'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}
  1. token-type-ids可以区分token来着哪个句子,方便我们做多句子样本任务。例如判断2个句子是否属于一个段落

  1. 可以直接输入2个列表,列表1表示句子1的集合,列表2表示句子2的集合:

tokenized_dataset = tokenizer(
    raw_datasets["train"]["sentence1"],
    raw_datasets["train"]["sentence2"],
    padding=True,
    truncation=True,
)
# 这种方法的缺点是需要一次性将全部数据集读入内存,硬件要求较高

数据集自定义处理(推荐)

使用Dataset.map() 方法

# 定义一个预处理函数,这里不用padding,在后面介绍使用的Dynamic padding效率更高
def tokenize_function(example):
    return tokenizer(example["sentence1"], example["sentence2"], truncation=True)

# batched=true一次应用于数据集的多个元素,提升效率
tokenized_datasets = raw_datasets.map(tokenize_function, batched=True)
tokenized_datasets
DatasetDict({
train: Dataset({
features: ['attention_mask', 'idx', 'input_ids', 'label', 'sentence1', 'sentence2', 'token_type_ids'],
num_rows: 3668
})
validation: Dataset({
features: ['attention_mask', 'idx', 'input_ids', 'label', 'sentence1', 'sentence2', 'token_type_ids'],
num_rows: 408
})
test: Dataset({
features: ['attention_mask', 'idx', 'input_ids', 'label', 'sentence1', 'sentence2', 'token_type_ids'],
num_rows: 1725
})
})

Dynamic padding

from transformers import DataCollatorWithPadding

data_collator = DataCollatorWithPadding(tokenizer=tokenizer)

samples = tokenized_datasets["train"][:8]
samples = {k: v for k, v in samples.items() if k not in ["idx", "sentence1", "sentence2"]}
[len(x) for x in samples["input_ids"]]
[50, 59, 47, 67, 59, 50, 62, 32]#现在前8个标记化的样本的tensor长度是不一样的
batch = data_collator(samples)
{k: v.shape for k, v in batch.items()}
{'attention_mask': torch.Size([8, 67]),
'input_ids': torch.Size([8, 67]),
'token_type_ids': torch.Size([8, 67]),
'labels': torch.Size([8])}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Transformers学习笔记5 的相关文章

  • 使用python对银行信息管理系统的简单实现

    一 首先是用户属性的类 class account object 储存用户信息的类 def init self id1 name tel money self id id1 账户 self name name 姓名 self tel tel
  • jvm 远程调试配置

    jstatd方式 创建配置文件 随便找个目录就可以 cat gt jstatd policy grant codebase file java home lib tools jar permission java security AllP
  • Spring3.0纯注解开发-越是高端越简洁

    附 类也称为接口 接口的范围很广泛 注解开发和纯注解开发不同点 1 纯注解新增加注解 configuration springcongfig类表名配置类 component xx springcongfig类 扫包注解 Scope sing
  • 【INS-30014】无法检查指定的位置是否位于CFS上的解决办法

    安装oracle数据库过程中 出现 INS 30014 无法检查指定的位置是否位于CFS上的解决办法如下 安装过程中 选择 仅安装数据库软件 在安装成功后 使用DBCA工具创建以及配置数据库即可
  • 什么是Java?

    刚开始学习Java时 对于老师讲述的Java的发展历程毫无兴趣 觉得只要会用就行了 直到有一天我的朋友突然问我 你们学的Java是什么呀 面对他突如其来的问题 我一下有点不知所措 刚想开口却又不知道说些什么 只能慢慢的吐出那几个字 一门编程
  • 本地部署LLaMA-中文LoRA部署详细说明

    在Ubuntu18 04 部署中文LLaMA模型 环境准备 硬件环境 AMD 5950X 128GB RAM RTX 3090 24G VRAM 操作系统 Ubuntu 18 04 编译环境 可选 llama cpp 编译 cd llama
  • 数字后端知识点扫盲——后端设计流程及使用工具

    1 DFT Design For Test 可测性设计 芯片每一步往往都自带测试电路 DFT的目的就是在设计的时候就考虑将来的测试 DFT的常见方法是 在设计中插入scan chain 将非扫描单元 如寄存器 变为扫描单元 DFT工具是sy
  • Linux命令·rm

    linux中删除文件和目录的命令 rm命令 rm是常用的命令 该命令的功能为删除一个目录中的一个或多个文件或目录 它也可以将某个目录及其下的所有文件及子目录均删除 对于链接文件 只是删除了链接 原有文件均保持不变 rm是一个危险的命令 使用
  • 【计算机基础

    定点数的表示 定点数 小数点的位置固定 例 996 007 常规计数 浮点数 小数点的位置不固定 例 9 96007 10 2 科学计数法 二进制的定点数 浮点数也类似 无符号数 整个机器字长的全部二进制位均为数值位 没有符号位 相当于数的
  • 【NLP】第 6 章 :微调预训练模型

    到目前为止 我们已经了解了如何使用包含预训练模型的huggingface API 来创建简单的应用程序 如果您可以从头开始并仅使用您自己的数据来训练您自己的模型 那不是很棒吗 如果您没有大量空闲时间或计算资源可供使用 那么使用迁移学习 是最
  • Java高并发处理方案

    java高并发 如何解决 什么方式解决 一 什么是高并发 二 高并发解决思路 三 高并发解决方案 一 什么是高并发 1 1 高并发 High Concurrency 是互联网分布式系统架构设计中必须考虑的因素之一 它通常是指 通过设计保证系
  • Git clone 时 出现SSL certificate problem error

    出现这个问题的原因是本地默认开启了SSL认证 但是在本地找不到SSL证书 解决办法就是关掉 SLL认证 git clone 时加上参数 no ssl check 完整的命令应该是 git clone no ssl check https g
  • 单目标追踪——【Transformer】MixFormer: End-to-End Tracking with Iterative Mixed Attention

    目录 文章侧重点 网络结构 MAM Mixed Attention Module MixFormer 论文 代码 文章侧重点 本文的出发点是认为现有的多阶段Siamese追踪框架 特征提取 特征融合 边界框预测 的前两步 特征提取 特征融合
  • SCSI、ISCSI、iSER、NVMe、NVMe-oF、NVMe-oF over RDMA

    在存储系统中 上层协议可以泛指 指令 也就是比如 读出从某某开始的多少长度的扇区 指令包含三大关键信息 1 操作码 Opreation Code 或称为OP code 比如write read等等 2 起始地址 从哪里开始读 如果是文件的话
  • 筛选sql中一列的重复数据及重复次数

    SELECT PROJECT CODE COUNT PROJECT CODE FROM meng project info GROUP BY PROJECT CODE HAVING COUNT PROJECT CODE gt 1 结果
  • Nim 游戏

    你和你的朋友 两个人一起玩 Nim 游戏 桌子上有一堆石头 你们轮流进行自己的回合 你作为先手 每一回合 轮到的人拿掉 1 3 块石头 拿掉最后一块石头的人就是获胜者 假设你们每一步都是最优解 请编写一个函数 来判断你是否可以在给定石头数量
  • Ubuntu和Windows使用Mmdetection训练Swin-Transformer+Mask-RCNN

    最近想用各种SOTA的Swin Transformer来试试实例分割效果 于是找了一下教程实验了一下 主要分为以下步骤 1 安装Mmdetection 这部分的教程很多 网上搜一下就行了 但是这里出错最多 2 下载Swin Transfor
  • 【Transformer】ViT and TNT(2)

    文章目录 VIT TNT 太 完整了 同济大佬唐宇迪博士终于把 Transformer 入门到精通全套课程分享出来了 最新前沿方向 学习笔记 VIT eg 图片分块 10x10x3 的 patch 通过 conv 拉成向量 就无缝对接了 位
  • BEV+Transformer感知架构共识下,传感器「火药味」再升级

    高阶智能驾驶战火愈演愈烈 正带动感知方案卷入新一轮军备竞赛 根据高工智能汽车研究院最新发布数据显示 2023年1 9月 中国市场 不含进出口 乘用车前装标配 软硬件 NOA交付新车37 73万辆 同比上年同期增长151 20 未来几年内 N
  • 【论文笔记】Summarizing source code with Heterogeneous Syntax Graph and dual position

    Summarizing source code with Heterogeneous Syntax Graph and dual position Abstract 1 Introduction 2 HSG and dual positio

随机推荐

  • 强化学习中累积奖赏公式的推导

    转载于 强化学习中累积奖赏公式的推导 qingtian11112的博客 CSDN博客 强化学习累计奖励 1 一些符号解释 P C D 表示条件概率 在D发生的条件下 C发生的概率 E C D 表示在D发生的条件下 求C的期望 即有 X 表示
  • 二叉树面试题

    将二叉查找树变为有序双向链表 考虑 二叉查找树的特点是左子树比根节点小 根节点又比右子树小 所以要把二叉查找树变为有序的双向链表 就要把左子树连接到它的前一个结点 右子树作为后一个结点 递归的进行下去 如图所示 问题解决 按照中序遍历二叉树
  • leetcode1798. 你能构造出连续值的最大数目(前缀和,贪心)

    题面 程序 class Solution public int getMaximumConsecutive vector
  • DM6446的视频前端VPFE的驱动大框架解析

    本文均属自己阅读源码的点滴总结 转账请注明出处谢谢 欢迎和大家交流 qq 1037701636 email 200803090209 zjut com gzzaigcn2012 gmail com dm6446是基于Davinci架构设计的
  • 什么是NFT?

    什么是NFT Not Fungible Token 非同质化代币 NFT是啥 内啡肽吗 很苦很苦的那个 术语说明 NFT Non Fungible Token 非同质化代币 FT Fungible Token 同质化代币 UTXO Unsp
  • python 模块 — logging模块、smtplib和email模块

    python 模块 日志 什么时候需要日志记录 排错 程序调试 用户行为分析 logging模块 日志等级 数值表示 描述 DEBUG 10 最详细的日志 常用于调试 INFO 20 仅次于debug的详细日志 记录关键节点 WARNING
  • std::string用法详解

    前言 string 的角色 1 string 使用 1 1 充分使用string 操作符 1 2 眼花缭乱的string find 函数 1 3 string insert replace erase 2 string 和 C风格字符串 3
  • centos8启动docker-mysql8容器

    README 本文记录了 centos8 安装 启动mysql8的docker容器的步骤 1 安装mysql8 docker容器 步骤1 查看mysql8 docker镜像版本 最简单的方式是上 Docker Hubhttps hub do
  • plsql因事务未提交造成的锁表的解决办法

    针对自己经常plsql锁表情况做个备忘录 方便下次操作 原文链接 https blog csdn net nmjuzi article details 80353670 1 执行以下语句可查询被锁的表 select b owner b ob
  • 敏捷测试团队管理的挑战与机会

    敏捷团队的管理其实的确面临着很多的挑战 蔡老师分别从敏捷管理的挑战 接受敏捷 敏捷下面的组织结构 敏捷架构下的沟通 敏捷下的KPI考核 以及机会和发展几个方面进行深入的讨论 其实我觉得各个公司施行敏捷的时候都会遇见这次讲师所分享的一些问题
  • Hive jdbc运行方式

    1 在服务器端启动hiveserver2 metastore服务所在的服务器 hive service hiveserver2 2 代码和访问mysql数据库的一样 package com bjsxt hive import java sq
  • [币严区块链]数字货币交易所之以太坊(ETH)钱包对接(一) 以太坊Geth客户端安装...

    以太坊Geth客户端安装 geth是以太坊的官方客户端 它是一个命令行工具 提供很多命令和选项 可以运行以太坊节点 创建和管理账户 发送交易 挖矿 部署智能合约等 下面介绍geth的三种安装方法 直接下载可执行文件 在线安装 从源码编译安装
  • 特征选择-包裹式选择

    包裹式选择与过滤式选择不考虑后续学习器不同 直接把最终使用的学习器的性能作为特征子集的评价准则 换言之 包裹式选择的目的就是为给定学习器选择最有利于其性能 量身定做 的特征子集 与过滤式选择的区别 包裹式选择方法直接针对给定学习器进行优化
  • OSI七层作用及常见协议

    OSI 模型 Open Systems Interconnection Model 由国际化标准组织ISO The International Organization for Standardization 收录在ISO 7489标准中并
  • 设有一个线性表E = { e1, e2, … , en - 1, en },设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E'={ en , en-1 , … , e2 , e1

    设有一个线性表E e1 e2 en 1 en 设计一个算法 将线性表逆置 即使元素排列次序颠倒过来 成为逆线性表E en en 1 e2 e1 要求逆线性表占用原线性表空间 并且用顺序表和单链表两种方法表示 分别用两个程序来完成 将链表倒置
  • 使用R语言使用梯度提升算法进行预测建模

    目录 1 什么是梯度提升算法 2 梯度提升算法的步骤 3 在R中实现梯度提升算法进行预测建模
  • uniapp实现底部导航栏

    首先在pages json中找到 globalStyle 在它下面建立 tabBar 如下 tabBar color 7A7E83 selectedColor 3cc51f borderStyle black backgroundColor
  • statsmodels 无法安装

    statsmodels 安装报错 使用 whl 包也无法安装 error subprocess exited with error Getting requirements to build wheel did not run succes
  • End-to-End Human Object Interaction Detection with HOI Transformer(CVPR2021)

    基于HOI transformer进行端到端的人与物体的交互检测 介绍 这是CVPR2021年的一篇论文 主要是作者提出了一种端到端的HOI检测方法 基于Transformer结构 作者总结了以前的研究工作以及方法 基本上目前的HOI研究主
  • Transformers学习笔记5

    hugface hub上不仅有预训练模型还有数据集 下载数据集 from datasets import load dataset raw datasets load dataset glue mrpc raw datasets Datas