前言
有时,如果您正在使用自己的数据,可能需要创建一个数据集。使用🤗 Datasets创建数据集可以让您的数据集享受到库的所有优势:快速加载和处理、流式处理大型数据集、内存映射等等。您可以使用🤗 Datasets的低代码方法轻松快速地创建数据集,从而缩短开始训练模型所需的时间。在许多情况下,将您的数据文件拖放到Hub上的数据集仓库中就像拖放一样简单。
在本教程中,您将学习如何使用🤗 Datasets的低代码方法来创建所有类型的数据集:
from_方法,用于从本地文件创建数据集
Operating System: Ubuntu 22.04.4 LTS
参考文档
File-based builders
🤗 Datasets 支持许多常见格式,如 csv, json/jsonl, parquet, txt 等。
例如,它可以读取由一个或多个 CSV 文件组成的数据集(在这种情况下,将您的 CSV 文件作为列表传递):
from datasets import load_dataset
dataset = load_dataset("csv", data_files="my_file.csv")
要获取支持的格式列表和代码示例,请遵循这里的指南。
From Python dictionaries
您还可以从Python字典中的数据创建数据集。使用 from_ 方法创建数据集有两种方式:
- from_generator() 方法是从生成器创建数据集的最节省内存的方式,这归功于生成器的迭代行为。当您处理可能无法一次性装入内存的非常大的数据集时,这种方式尤其有用,因为数据集是逐步在磁盘上生成,然后进行内存映射的。
>>> from datasets import Dataset
>>> def gen():
... yield {"pokemon": "bulbasaur", "type": "grass"}
... yield {"pokemon": "squirtle", "type": "water"}
>>> ds = Dataset.from_generator(gen)
>>> ds[0]
{"pokemon": "bulbasaur", "type": "grass"}
基于生成器的 IterableDataset 需要使用 for 循环来迭代,例如:
>>> from datasets import IterableDataset
>>> ds = IterableDataset.from_generator(gen)
>>> for example in ds:
... print(example)
{"pokemon": "bulbasaur", "type": "grass"}
{"pokemon": "squirtle", "type": "water"}
from_dict()方法是一种直接从字典创建数据集的简单方式:
>>> from datasets import Dataset
>>> ds = Dataset.from_dict({"pokemon": ["bulbasaur", "squirtle"], "type": ["grass", "water"]})
>>> ds[0]
{"pokemon": "bulbasaur", "type": "grass"}
要创建图像或音频数据集,请将 cast_column() 方法与 from_dict() 方法链式调用,并指定列和特征类型。例如,创建音频数据集:
>>> audio_dataset = Dataset.from_dict({"audio": ["path/to/audio_1", ..., "path/to/audio_n"]}).cast_column("audio", Audio())
现在您已经知道如何创建一个数据集了,考虑在 Hub 上分享它,这样社区的其他成员也能从您的工作中受益!继续阅读下一部分,学习如何分享您的数据集。
结语
第一百九十五篇博文写完,开心!!!!
今天,也是充满希望的一天。