Transformers学习笔记2. HuggingFace数据集Datasets

news2024/11/24 23:25:50

Transformers学习笔记2. HuggingFace数据集Datasets

  • 一、简介
  • 二、操作
    • 1. 下载数据集
    • 2. 常用函数
      • (1)排序
      • (2)打乱顺序
      • (3)选择函数
      • (4)过滤
      • (5)切分数据集
      • (6)分桶
      • (7)列重命名
      • (8)列删除
      • (9)数据集转换
      • (10)map函数
      • (11)数据的保存和加载
    • 3. 评价指标 Evaluate
      • (1)加载
      • (2)从社区加载模块
      • (3)列出可用模块
      • (4)模块属性
      • (5)计算,直接调用函数计算
      • (6)计算单个或一批指标
      • (7)可视化

一、简介

Datasets库是Hugging Face的一个重要的数据集库。 当需要微调一个模型的时候,需要进行下面操作:

  1. 下载数据集
  2. 使用Dataset.map() 预处理数据
  3. 加载和计算指标
    可以在官网来搜索数据集:
    https://huggingface.co/datasets
    在这里插入图片描述

二、操作

1. 下载数据集

使用的示例数据集:
在这里插入图片描述

from datasets import load_dataset

# 加载数据
dataset = load_dataset(path='seamew/ChnSentiCorp', split='train')

print(dataset)

打印结果:

Dataset({
    features: ['text', 'label'],
    num_rows: 9600
})
{'text': '选择珠江花园的原因就是方便,有电动扶梯直接到达海边,周围餐馆、食廊、商场、超市、摊位一应俱全。酒店装修一般,但还算整洁。 泳池在大堂的屋顶,因此很小,不过女儿倒是喜欢。 包的早餐是西式的,还算丰富。 服务吗,一般', 'label': 1}

2. 常用函数

(1)排序

sortData = dataset.sort('label')

在这里插入图片描述

(2)打乱顺序

shuffleData = sortData.shuffle(seed=20);

(3)选择函数

从数据集中取出某些指定的部分。

dataset.select([0,1,2,3])

(4)过滤

def filter(data):
    return data['text'].startswith('1')
b = dataset.filter(filter)

在这里插入图片描述

(5)切分数据集

dataset.train_test_split(test_size=0.1)

把数据集切分,10%为测试集。
在这里插入图片描述

(6)分桶

把数据集均数若干份,取其中的第几份。

dataset.shard(num_shards=5, index=0)

(7)列重命名

c = a.rename_column('text', 'newColumn')

(8)列删除

d = c.remove_columns(['newColumn'])

(9)数据集转换

set_format函数用来实现与其它库数据格式的转换;

# 转为PyTorch数据集格式 
dataset.set_format(type='torch', columns=['label'])
# 转为Pandas格式 
dataset.set_format(type='pandas', columns=['label'])

(10)map函数

遍历数据,对每个数据进行处理

def handler(data):
	data['text'] = 'Prefix' + data['text']
	return data

datasetMap = dataset.map(handler)

(11)数据的保存和加载

dataset.save_to_disk('./')

在这里插入图片描述

from datasets import load_from_disk
dataset = load_from_disk('./')

3. 评价指标 Evaluate

安装Evaluate库:

pip install evaluate

(1)加载

import evaluate
accuracy = evaluate.load("accuracy")

(2)从社区加载模块

element_count = evaluate.load("lvwerra/element_count", module_type="measurement")

(3)列出可用模块

evaluate.list_evaluation_modules(
  module_type="comparison",
  include_community=False,
  with_details=True)

在这里插入图片描述

(4)模块属性

属性描述
description评估模块说明
citation用于引用的 BibTex 字符串(如果可用)。
features定义输入格式的对象的特征
inputs_description说明
homepage模块的主页
license模块的许可证
codebase_urls模块代码链接
reference_urls其他引用网址

(5)计算,直接调用函数计算

# 评估值正确率有一半
accuracy.compute(references=[0,1,0,1], predictions=[1,0,0,1])
# 输出
{'accuracy': 0.5}

(6)计算单个或一批指标

for ref, pred in zip([0,1,0,1], [1,0,0,1]):
    accuracy.add(references=ref, predictions=pred)
accuracy.compute()

输出:

{'accuracy': 0.5}

批添加:

for refs, preds in zip([[0,1],[0,1]], [[1,0],[0,1]]):
    accuracy.add_batch(references=refs, predictions=preds)
accuracy.compute()

(7)可视化

import evaluate
from evaluate.visualization import radar_plot

data = [
   {"accuracy": 0.99, "precision": 0.8, "f1": 0.95, "latency_in_seconds": 33.6},
   {"accuracy": 0.98, "precision": 0.87, "f1": 0.91, "latency_in_seconds": 11.2},
   {"accuracy": 0.98, "precision": 0.78, "f1": 0.88, "latency_in_seconds": 87.6},
   {"accuracy": 0.88, "precision": 0.78, "f1": 0.81, "latency_in_seconds": 101.6}
   ]
model_names = ["Model 1", "Model 2", "Model 3", "Model 4"]
plot = radar_plot(data=data, model_names=model_names)
plot.show()

在这里插入图片描述

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

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

相关文章

图书管理网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 模块划分:老师模块、班级模块、学生模块、课程模块、试题模块、试卷模块、 组卷模块、考试模块、答题模块 管…

第十五章项目1——水果管理系统

文章目录目的从需求开始出发从数据库和数据库连接开始——DAO层对应数据库和数据表的创建项目优化——Mybatis等框架思路引入关于Servlet的编写项目优化——MVC思路引入项目优化——ViewBaseServlet模板引擎的引入项目优化——dispatcherServlet引入项目优化——Service层引入项…

【图像去噪】即插即用法图像去噪【含Matlab源码 152期】

⛄一、简介 理论知识参考文献:基于Retinex和ADMM优化的水下光照不均匀图像增强算法 ⛄二、部分源代码 function out PlugPlayADMM_deblur(y,h,lambda,method,opts) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %out PlugPlayADMM_deblur(y,h,lambda,method,opt…

19-Mysql执行原理之索引合并详解

Mysql执行原理之索引合并详解 我们前边说过MySQL在一般情况下执行一个查询时最多只会用到单个二级索引,但存在有特殊情况,在这些特殊情况下也可能在一个查询中使用到多个二级索引,MySQL中这种使用到多个索引来完成一次查询的执行方法称之为&…

day24【代码随想录】平衡二叉树、二叉树的所有路径、路径总和||、路径总和、求根节点到叶节点数字之和

文章目录前言一、平衡二叉树(力扣110)二、二叉树的所有路径(力扣257)1、递归法2、迭代法三、路径总和 II(力扣113)四、路径总和(力扣112)五、求根节点到叶节点数字之和(力…

【图像配准】SIFT图像配准【含Matlab源码 1007期】

⛄一、SIFT配准简介 SIFT即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。 1 SIFT算法特点: (1)具有较好的稳定性和不变性&…

[附源码]计算机毕业设计Node.js博客管理系统(程序+LW)

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

springboot多数据源---2事务

一、多数据源事务控制 在多数据源下,由于涉及到数据库的多个读写。一旦发生异常就可能会导致数据不一致的情况, 在这种情况希望使用事务 进行回退。 但是Spring的声明式事务在一次请求线程中只能使用一个数据源进行控制 但是对于多源数据库: …

C#语言实例源码系列-设置桌面背景

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…

36寸便携旅行小吉他怎么选?八款高性价比颜值的儿童初学女生新手入门吉他品牌推荐!

本期介绍民谣吉他里的36英寸的Mini桶型,主要适用于小孩或者喜欢带琴外出旅行的朋友们,也被称为儿童吉他或者旅行吉他。这些吉他基本上也是配备标准指板的,演奏体验与大吉他一样。相比桶型较大的吉他,其音量会 相对较小&#xff0c…

zibll子比主题6.7用户徽章功能详解及配置教程[V6.7新功能]

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 用户徽章功能是现在很多社交类网站和app必不可少的功能了,能有效的增加网站交互的趣味性。 zibll子比主题V6.7就更新了用户徽章功能,接下来我们就来了解一下这个…

[3D数据深度学习] (PC/服务器集群cluster)CPU内存/GPU显存限制及解决办法

[3D数据深度学习] (PC/服务器集群cluster)内存/显存参数设置1. 硬件配置推荐2. 深度学习流程及遇到的问题3. CPU内存限制及参数设置4. GPU显存限制及参数设置3D数据的深度学习目前研究远不如2D深度学习成熟,其中最大的一个原因之一就是收到硬…

【跨层注意力:多层次融合】

Multi-level features fusion via cross-layer guided attention for hyperspectral pansharpening (基于跨层注意力引导的多层次特征融合高光谱全色锐化) 近年来,卷积神经网络(CNN)在计算机视觉中的成功应用引起了人…

新手入门吉他买什么牌子好?有哪些值得推荐的吉他品牌,附上初学者吉他选购攻略!【避坑指南】

在选购吉他之前,大家必须提前了解的一些关于吉他的知识,提前做好功课,不怕挑选不到适合的吉他,新手入门吉他怎么选?怎么选到适合自己的吉他?带着这些问题在这里我将详细地给大家一一讲解,同时最…

如何做好客户精细化管理?

很多人都知道客户精细化管理的重要性,但并不是所有人都掌握客户精细化管理的科学方法。 目前,客户精细化管理最常用的方法是基于RFM模型的客户细分方法。 RFM分析是客户关系分析中一种简单实用客户分析方法,他将最近一次消费、消费频率、消…

Java项目:基于ssm智能餐厅管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目主要分为服务员、厨师、收银员、经理四种角色; 主要功能包括: 客户可以根据自己的要求去选择菜品,厨师…

23种设计模式的分类和应用场景总结【设计模式】

23种设计模式的分类和应用场景总结【设计模式】设计模式分类创建型模式结构型模式行为型模式设计模式的几种原则应用场景总结各种模式的详细介绍创建型模式设计模式分类 23种设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 创建型模式 &#x1f34…

(附源码)SSM高考志愿智能选择系统 毕业设计 134565

SSM高考志愿智能选择系统 摘 要 高中教育的普及使得每年高考人数攀升,与此同时,信息不对称会使部分考生处于劣势,造成获录学校或专业性价比不高、报录比偏低、复读率增高、考研热等问题。针对这些情况,本文设计并实现了高考志愿智…

【时钟识别】Hough变换指针式时钟识别【含GUI Matlab源码 2085期】

⛄一、简介 1 仪表示数识别流程 基于刻度准确定位的指针式仪表示数识别方法包括预处理、指针检测、刻度定位、油位计表盘中心拟合与仪表读数计算5个部分。该方法无需预先添加任何表盘信息,算法流程如图2所示。整个流程分为两步且同时进行——第1步,将油位计图像进行灰度化和边…

DPDK技术原理概述

DPDK 基本技术指标准的 DPDK 数据平面开发包和 I/O 转发实现技术,本次将概述该部分的主要技术原理。 1 技术原理与架构 由于采用软件转发和软件交换技术,单服务器内部的转发能力是 NFV 系统的主要性能瓶颈。在各类高速转发的 NFV 应用中,数…