Hugging Face 的 datasets 库中的 load_dataset 函数是一个核心工具,用于快速加载和处理多种格式的数据集。
主要功能
1.支持多种数据源
- 从 Hugging Face Hub 加载公开数据集(如 IMDB、SQuAD)
- 读取 本地文件(CSV/JSON/文本等)
- 解析 内存数据(如 Python 字典或 Pandas DataFrame)
2.自动处理数据格式
- 自动识别文件格式(无需手动指定 CSV/JSON 等)
- 处理分块数据集(如多个文件分割的训练/验证/测试集)
3.高效缓存机制 - 首次加载后缓存到本地 ~/.cache/huggingface/datasets
- 通过 cache_dir 参数自定义缓存路径
用法示例
1. 加载 Hub 数据集
from datasets import load_dataset
dataset = load_dataset("imdb")
print(dataset["train"][0])
dataset = load_dataset("multi_news", "1.0")
2. 加载本地文件
dataset = load_dataset("csv", data_files="path/to/file.csv")
dataset = load_dataset("json", data_files={"train": "train.json", "test": "test.json"})
3. 指定数据分割
dataset = load_dataset("imdb", split="train[:10%]")
dataset = load_dataset("imdb", split="train[:80%]+train[-20%:]")
核心参数解析
参数 | 类型 | 说明 | 示例 |
---|
path | str | 数据集标识(Hub 名称或本地文件格式) | "imdb" (Hub) "csv" (本地格式) |
name | str | 数据集配置/版本(部分 Hub 数据集需指定) | "plain_text" (如 "ag_news" 的子配置) |
split | str | 加载的数据分割(支持切片语法) | "train" "train[:10%]+validation[:20%]" |
cache_dir | str | 自定义缓存目录路径 | "./my_cache" |
download_mode | str | 下载模式(避免重复下载) | "reuse_cache_if_exists" (默认) "force_redownload" |
streaming | bool | 流式加载(大数据集时省内存) | streaming=True |
trust_remote_code | bool | 信任自定义数据集加载脚本 | True (用于第三方脚本) |
从 Hugging Face Hub 加载时的参数
参数 | 说明 | 示例 |
---|
revision | 数据集版本(Git 分支/标签/commit) | revision="v1.1.0" |
use_auth_token | 访问私有数据集时的认证 token | use_auth_token=True (读取本地缓存) use_auth_token="hf_xxx" |
从本地文件加载时的参数
参数 | 说明 | 适用格式 | 示例 |
---|
data_files | 文件路径(支持通配符 * ) | CSV/JSON/Text | data_files="data/*.json" data_files={"train": "train.csv", "test": "test.csv"} |
data_dir | 包含数据文件的目录路径 | 文本/图像 | data_dir="./images" |
delimiter | CSV 分隔符(默认 , ) | CSV | delimiter="\t" |
skip_rows | 跳过文件开头的行数 | CSV/Text | skip_rows=1 (跳过标题行) |