datasets中load_dataset函数学习

datasets是Hugging Face开发的一个数据集库,可以从Hugging Face Hub里下载数据,也可从本地加载数据集
您可以在https://huggingface.co/datasets上或使用datasets.list_datasets 找到数据集列表。

数据集是一个包含以下内容的目录:

  • 一些通用格式的数据文件(JSON、CSV、Parquet、文本等)。
  • 如果需要一些代码来读取数据文件,还可以选择使用数据集脚本。这用于加载任何类型的格式或结构。

请注意,数据集脚本也可以从任何地方下载和读取数据文件——以防您的数据文件已经在线存在。
这个函数在幕后执行以下操作:

  1. 如果库中尚未缓存数据集脚本,请从path下载并导入库中。
    如果数据集没有数据集脚本,那么就会导入一个通用的数据集脚本(JSON、CSV、Parquet、文本等)
    数据集脚本是定义数据集构建器的小型Python脚本。它们定义了数据集的引用、信息和格式,
    包含原始数据文件的路径或URL以及从原始数据文件加载示例的代码。
    您可以在数据集https://huggingface.co/datasets中找到完整的数据集列表。

  2. 运行数据集脚本,该脚本将执行以下操作:

  • 如果本地或缓存中尚未提供该数据集文件,请从原始URL下载。
  • 在类型化的Arrow表中处理和缓存数据集以进行缓存。
    Arrow表是任意长的类型化表,可以存储嵌套对象,并可以映射到numpy/pandas/python通用类型。
    它们可以直接从磁盘访问,加载到RAM中,甚至可以通过网络流式传输。
  1. 返回一个根据split中的请求拆分构建的数据集(默认值:全部)。
    它还允许从本地目录或Hugging Face Hub上的数据集存储库中加载数据集,而无需数据集脚本。
    在这种情况下,它会自动从目录或数据集存储库中加载所有数据文件。

Args:

path(str):数据集的路径或名称。根据path,所使用的数据集构建器来自通用的数据集脚本(JSON、CSV、Parquet、文本等)或数据集目录中的数据集脚本(Python文件)。
对于本地数据集:
- 如果path是一个本地目录(仅包含数据文件)
-> 根据目录内容加载一个通用的数据集构建器(csv、json、text等),例如“”/路径/to/directory/带/my/csv/data“”。
- 如果path是一个本地数据集脚本或包含本地数据集脚本的目录(如果脚本与目录同名)
-> 从数据集脚本中加载数据集构建器,例如,‘./dataset/squad’ 或 ‘./dataset/squad/squad.py’。

对于Hugging Face Hub上的数据集(使用datasets.list_datasets列出所有可用的数据集和ID)
- 如果path是HF中心上的数据集仓库(仅包含数据文件)
-> 根据存储库的内容加载一个通用的数据集构建器(csv、文本等)
例如,‘username/dataset_name’,这是HF中心的一个数据集仓库,包含您的数据文件。
- 如果path是HF中心上的一个带有数据集脚本的数据集仓库(如果脚本与目录同名)
-> 从数据集仓库中的数据集脚本加载数据集构建器
例如,“glue”、“squad”、“‘username/dataset_name’”,HF hub上的一个数据集存储库,其中包含一个数据集脚本“dataset_name.py”。

name (str, optional):定义数据集配置的名称。

data_dir (str, optional):
定义数据集配置的data_dir。如果为通用构建器(csv、text等)或Hub数据集指定了data_dir,并且data_filesNone
该行为等同于将os.path.join(data_dir, **)作为data_files传递,以引用目录中的所有文件。

data_files (str 或 Sequence 或 Mapping , optional):
源数据文件的路径。

split (Split 或 str):
要加载的数据的哪一部分。
如果为“None”,将返回一个包含所有拆分的字典(通常为“datasets.Split.TRAIN”和“datasets.Split.TEST”)。
如果给出,将返回单个数据集。
分割可以像在tensorflow-datasets中一样进行组合和指定。

cache_dir (str, optional):
读取/写入数据的目录。默认为"~/.cache/huggingface/datasets"。

features (Features, optional)
设置此数据集要使用的特征类型。

download_config ([DownloadConfig], optional):
特定的下载配置参数。

download_mode ([DownloadMode] or str, defaults to REUSE_DATASET_IF_EXISTS ):
下载/生成模式。

verification_mode ([VerificationMode] or str, defaults to BASIC_CHECKS):
验证模式确定对下载/处理的数据集信息(校验和/大小/分割等)进行的检查。

<新增版本=“2.9.1”/>
ignore_verifications(bool, 默认为False):
忽略已下载/已处理数据集信息的验证(校验和/大小/分割等)。

<弃用版本=“2.9.1”>
ignore_verifications 在 2.9.1 版本中已被弃用,并将在 3.0.0 版本中移除。
请改用verification_mode。

</已弃用>
keep_in_memory (bool, 默认为 None):
是否在内存中复制数据集。如果为“None”,则数据集
除非通过设置datasets.config.IN_MEMORY_MAX_SIZE来明确启用,否则不会在内存中复制非零。有关更多详细信息,请参阅提高性能部分。

save_infos (bool, 默认为False):
保存数据集信息(校验和/大小/分割等)。

use_auth_token (str 或 bool, 可选):
用作Datasets Hub上远程文件的承载令牌的可选字符串或布尔值。

<新增版本=“2.7.0”/>
**config_kwargs (additional keyword arguments):
要传递给BuilderConfig的关键字参数并用于[‘DatasetBuilder’]。

Returns:
[Dataset] or [DatasetDict]:
- 如果split不为None:请求的数据集,
- 如果 split 为 None,则返回一个包含每个拆分的 [~datasets.DatasetDict]。
or [IterableDataset] or [IterableDatasetDict]: if streaming=True
- 如果 split 不为 None ,则请求数据集
- 如果 split 为 None ,则返回一个包含每个拆分的 [ ~datasets.streaming.IterableDatasetDict ]。

例子:
从Hugging Face Hub加载数据集:

from datasets import load_dataset
ds = load_dataset('rotten_tomatoes', split='train')

#将数据文件映射到分割文件
data_files = {'train': 'train.csv', 'test': 'test.csv'}
ds = load_dataset('namespace/your_dataset_name', data_files=data_files)

加载本地数据集:

# Load a CSV file
from datasets import load_dataset
ds = load_dataset('csv', data_files='path/to/local/my_dataset.csv')

# Load a JSON file
from datasets import load_dataset
ds = load_dataset('json', data_files='path/to/local/my_dataset.json')

# Load from a local loading script
from datasets import load_dataset
ds = load_dataset('path/to/local/loading_script/loading_script.py', split='train')

加载一个[‘~datasets.IterableDataset’]:

from datasets import load_dataset
ds = load_dataset('rotten_tomatoes', split='train', streaming=True)

使用 ImageFolder 数据集构建器加载图像数据集:

from datasets import load_dataset
ds = load_dataset('imagefolder', data_dir='/path/to/images', split='train')
  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值