datasets 笔记:加载数据集(基本操作)

devtools/2024/12/23 4:05:49/

参考了huggingface的教程

1  了解数据集基本信息( load_dataset_builder)

  • 在下载数据集之前,通常先快速了解数据集的基本信息会很有帮助。
  • 数据集的信息存储在 DatasetInfo 中,可能包括数据集描述、特征和数据集大小等信息。(不同的数据集提供的信息可能也不相同)
  • 使用 load_dataset_builder() 函数加载数据集生成器,并在不下载数据集的情况下检查数据集的属性
from datasets import load_dataset_builder
ds_builder = load_dataset_builder("cornell-movie-review-data/rotten_tomatoes")ds_builder.info.description
#''from datasets import load_dataset_builder
ds_builder = load_dataset_builder("rotten_tomatoes")ds_builder.info.description
#''
from datasets import load_dataset_builder
ds_builder = load_dataset_builder("cornell-movie-review-data/rotten_tomatoes")ds_builder.info.features
'''
{'text': Value(dtype='string', id=None),'label': ClassLabel(names=['neg', 'pos'], id=None)}
'''

至于这个数据集的名字怎么来的,我的理解是,复制完整路径即可

2 加载数据集

2.1  加载所有

此时Datasets 将返回一个 DatasetDict 对象

from datasets import load_datasetdataset = load_dataset("rotten_tomatoes")
dataset
'''
DatasetDict({train: Dataset({features: ['text', 'label'],num_rows: 8530})validation: Dataset({features: ['text', 'label'],num_rows: 1066})test: Dataset({features: ['text', 'label'],num_rows: 1066})
})
'''

2.2 加载特定划分

2.2.1 数据集划分

  • 数据集的划分是特定的子集,比如训练集(train)和测试集(test)
  • 可以使用 get_dataset_split_names() 函数查看数据集的划分名称
from datasets import get_dataset_split_namesget_dataset_split_names("rotten_tomatoes")
#['train', 'validation', 'test']

2.2.2 读取单个

from datasets import load_datasetdataset = load_dataset("rotten_tomatoes", split="train")
dataset
'''
Dataset({features: ['text', 'label'],num_rows: 8530
})
'''

2.3 读取配置

  • 某些数据集包含多个子数据集。例如,MInDS-14 数据集包含多种语言的音频数据,这些子数据集被称为配置或子集。
  • 加载这些数据集时,必须显式选择其中一个配置。
  • 如果没有提供配置名称,Datasets 会抛出 ValueError

2.3.1 获取数据集的所有可用配置

from datasets import get_dataset_config_namesconfigs = get_dataset_config_names("PolyAI/minds14")
print(configs)
'''
['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN', 'all']
'''

2.3.2 加载需要的配置

from datasets import load_datasetmindsFR = load_dataset("PolyAI/minds14", "fr-FR", split="train")

【这一步官网是这么说的,但是我自己是报错的】

2.4 主要参数

path 

数据集的路径或名称。

  • 如果是 Hub 仓库路径(例如 "namespace/dataset_name"),加载该仓库中的数据文件。

  • 如果是本地路径,加载本地文件夹中的数据文件(需要配合data_dir/data_files)。

data_dir

数据所在的目录路径

data_files

  • 数据文件的路径或路径列表。

data_files 是一个列表时:

  • 结果直接合并(append):多个文件的数据会被视为一个整体,并按行追加形成一个统一的 Dataset
  • 返回值是一个 Dataset 对象

可以将 data_files 配置为一个字典,手动映射文件到划分

结果: ds 是一个 DatasetDict 对象,包含多个划分

split

  • 加载数据集的特定划分。

前10%+后20%

交叉验证

cache_dir

数据集缓存的存储目录,默认是~/.cache/huggingface/datasets

download_mode

指定是否重新下载数据集:
  • REUSE_DATASET_IF_EXISTS(默认):如果已缓存则不重新下载。
  • FORCE_REDOWNLOAD:强制重新下载。

keep_in_memory

是否将数据集加载到内存中

features

用于定义 数据集每一列的特征,即每一列的数据类型和结构

嵌套特征

revision

加载特定版本的数据集(如 Git 标签或分支)

token

Hugging Face Hub 的身份验证令牌。

streaming

是否启用流式加载,适用于超大数据集

num_proc

多进程数量,用于加速数据处理


http://www.ppmy.cn/devtools/144577.html

相关文章

数据结构期末复习题

第一次作业——绪论 1.数据结构被形式地定义为(D,R),其中D是( B )的有限集。 A.算法 B.数据元素 C.数据操作 D.逻辑结构 2.数据结构是一门研究非数值计算的程序设计问题中计算机的( A )以及它们之间的关系和运算等的学科。 …

从 0 到 1 掌握 Java 类加载器:踩坑与反转的奇妙之旅

前言 Java 类加载器,看似一个晦涩难懂的概念,却在整个 Java 应用的生命周期中扮演着极为重要的角色。它负责加载类到 JVM 中,并且控制着类的访问与隔离。在你深入理解 Java 应用时,类加载器可能是一个你避而不谈的“黑箱”&#…

如何在Qt中应用html美化控件

在Qt中应用HTML美化控件,主要可以通过以下几种方式: 使用QWebEngineView:QWebEngineView是基于Chromium引擎的控件,用于显示和交互HTML内容。它支持现代Web标准和技术,如HTML5、CSS3和JavaScript。你可以通过以下步骤…

Halcon中dots_image(Operator)算子原理及应用详解

在HALCON中,dots_image算子是一个用于增强图像中圆点效果的强大工具,特别适合于点的分割,以及OCR(光学字符识别)应用程序中增强点状印刷字体。以下是对dots_image (ImageResult, DotImage, 5, ‘dark’, 2)算子原理及应…

Kubernetes(K8s)学习笔记

一、引言 Kubernetes(简称K8s)是一个开源的容器编排和管理平台,由Google主导开发,旨在自动化容器化应用程序的部署、扩展和管理。K8s以其强大的功能、高度的可扩展性和广泛的社区支持,已成为现代云原生应用架构的核心…

PC寄存器(Program Counter Register) jvm

在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色,它是JVM执行引擎的核心组成部分之一。以下是PC寄存器在JVM中的具体角色和职责: 指令执行指针: PC寄存…

2024年港澳台华侨生联考师范类院校录取情况来

导读 师范类大学一直是在港澳台华侨生联考中,最受瞩目的学校类型之一,今天我们就跟大家一块来盘点一下2024年的港澳台联考中,师范类大学的录取分数线情况。(景于行提示您:我们给您提供的分数线数据真实可靠&#xff0…

【01-数据库面试】

数据库的join查询是SQL语言中一个非常重要的概念,它允许我们从多个表中检索数据。在实际应用中,数据往往分散在不同的表中,而join查询则提供了一种将这些分散的数据组合在一起的方法。本文将详细介绍join查询的类型、语法以及应用场景。 Join…