最完整 datasets使用指南:从安装到高级功能一网打尽

最完整🤗 datasets使用指南:从安装到高级功能一网打尽

【免费下载链接】datasets 🤗 The largest hub of ready-to-use datasets for ML models with fast, easy-to-use and efficient data manipulation tools 【免费下载链接】datasets 项目地址: https://gitcode.com/gh_mirrors/da/datasets

你还在为机器学习项目中的数据加载和处理烦恼吗?🤗 datasets库提供了一站式解决方案,让你轻松应对各种数据挑战。本文将从基础安装到高级功能,带你全面掌握这个强大工具的使用方法。读完本文,你将能够:快速安装配置datasets、加载各种类型的数据集、高效处理数据、使用流处理应对大型数据,以及与PyTorch等框架无缝集成。

安装与环境配置

快速安装

datasets支持多种安装方式,最简便的方法是使用pip:

pip install datasets

如需处理音频或图像数据,可安装相应扩展:

pip install datasets[audio]  # 音频数据支持
pip install datasets[vision]  # 图像数据支持

详细安装指南可参考官方安装文档

源码安装

如果你需要最新版本或参与开发,可以从源码安装:

git clone https://gitcode.com/gh_mirrors/da/datasets
cd datasets
pip install -e .

验证安装

安装完成后,可通过以下命令验证:

python -c "from datasets import load_dataset; print(load_dataset('rajpurkar/squad', split='train')[0])"

若输出SQuAD数据集的第一条记录,则安装成功。

数据集加载

从Hugging Face Hub加载

datasets与Hugging Face Hub深度集成,可直接加载其中的数千个数据集:

from datasets import load_dataset
dataset = load_dataset("nyu-mll/glue", "mrpc", split="train")

指定split参数可选择数据集拆分,如训练集、验证集等。更多加载选项参见从Hub加载数据集

从本地文件加载

支持CSV、JSON、Parquet等多种格式:

# 加载CSV文件
dataset = load_dataset("csv", data_files="train.csv")

# 加载JSON文件
dataset = load_dataset("json", data_files="train.json")

# 加载Parquet文件
dataset = load_dataset("parquet", data_files={"train": "train.parquet", "test": "test.parquet"})

详细文件格式支持见本地文件加载指南

从内存数据创建

可直接从Python字典、列表或Pandas DataFrame创建数据集:

from datasets import Dataset
import pandas as pd

# 从字典创建
data_dict = {"text": ["Hello", "World"], "label": [0, 1]}
dataset = Dataset.from_dict(data_dict)

# 从DataFrame创建
df = pd.DataFrame(data_dict)
dataset = Dataset.from_pandas(df)

更多创建方法参见创建数据集

数据处理基础

数据查看与选择

加载数据集后,可轻松查看和选择数据:

# 查看数据集信息
print(dataset)
print(dataset[0])  # 查看第一条记录

# 选择子集
small_dataset = dataset.select(range(100))  # 前100条
filtered_dataset = dataset.filter(lambda x: x["label"] == 1)  # 筛选标签为1的样本

列操作

重命名、删除或添加列:

# 重命名列
dataset = dataset.rename_column("old_name", "new_name")

# 删除列
dataset = dataset.remove_columns(["unneeded_column"])

# 添加新列
def add_length(example):
    example["text_length"] = len(example["text"])
    return example
dataset = dataset.map(add_length)

详细数据处理技巧见数据处理指南

数据拆分

创建训练集和测试集:

splits = dataset.train_test_split(test_size=0.2)
train_dataset = splits["train"]
test_dataset = splits["test"]

高级数据处理

批量处理

使用map函数进行高效批量处理:

def process_batch(batch):
    batch["text_lower"] = [text.lower() for text in batch["text"]]
    return batch

dataset = dataset.map(process_batch, batched=True, batch_size=1000)

多进程处理

启用多进程加速处理:

dataset = dataset.map(process_function, num_proc=4)  # 使用4个进程

数据格式转换

转换为PyTorch张量格式:

dataset.set_format("torch", columns=["input_ids", "labels"])

更多格式转换选项见PyTorch集成指南

大型数据集处理

流处理

对于无法全部加载到内存的大型数据集,使用流处理模式:

dataset = load_dataset("HuggingFaceFW/fineweb", split="train", streaming=True)
for example in dataset.take(5):  # 只处理前5个样本
    print(example)

详细流处理用法见流处理指南

缓存管理

控制缓存行为,优化磁盘空间使用:

# 更改缓存目录
dataset = load_dataset("squad", cache_dir="/path/to/cache")

# 清理缓存
dataset.cleanup_cache_files()

缓存管理详情见缓存指南

与深度学习框架集成

PyTorch DataLoader

将数据集转换为PyTorch DataLoader:

from torch.utils.data import DataLoader

dataloader = DataLoader(dataset, batch_size=32)

分布式训练

在分布式环境中使用数据集:

from datasets.distributed import split_dataset_by_node

dataset = split_dataset_by_node(dataset, rank=0, world_size=4)

更多框架集成见框架集成文档

实际应用示例

文本分类数据集处理

from datasets import load_dataset
from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
dataset = load_dataset("imdb", split="train")

def tokenize_function(examples):
    return tokenizer(examples["text"], padding="max_length", truncation=True)

tokenized_dataset = dataset.map(tokenize_function, batched=True)

图像数据集加载与增强

from datasets import load_dataset, Image

dataset = load_dataset("beans", split="train")
dataset = dataset.cast_column("image", Image(mode="RGB"))

# 数据增强
def augment(examples):
    examples["pixel_values"] = [transform(image) for image in examples["image"]]
    return examples
dataset = dataset.map(augment, batched=True)

总结与进阶

通过本文,你已经掌握了datasets库的核心功能,从基础安装到高级数据处理技巧。这个强大的工具能够帮助你轻松应对各种机器学习数据挑战,提高数据准备效率。

进阶学习资源:

现在,你已经准备好使用datasets库来简化你的机器学习工作流了。开始探索吧!

点赞收藏本文,关注更多AI工具使用技巧!下期预告:自定义数据集创建与共享。

【免费下载链接】datasets 🤗 The largest hub of ready-to-use datasets for ML models with fast, easy-to-use and efficient data manipulation tools 【免费下载链接】datasets 项目地址: https://gitcode.com/gh_mirrors/da/datasets

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值