Hub 文档

文件名和数据分割

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

文件名和数据分割

要托管和分享你的数据集,请在 Hugging Face Hub 上创建一个数据集仓库并上传你的数据文件。

本指南将向你展示在上传数据集时,如何在你的数据集仓库中命名文件和目录,并启用所有数据集 Hub 功能,例如数据集查看器。查看示例数据集的配套集合以获取更多详细信息。

具有支持的结构和文件格式的数据集在其 Hub 页面上自动拥有数据集查看器。

请注意,如果以下任何结构都不适合你的情况,你可以通过手动配置来更好地控制如何定义分割和子集。

基本用例

如果你的数据集没有分割成训练/验证/测试分割,最简单的数据集结构是只有一个文件:data.csv(这适用于任何支持的文件格式和任何文件名)。

你的仓库还将包含一个 README.md 文件,即显示在你的数据集页面上的数据集卡片

my_dataset_repository/
├── README.md
└── data.csv

数据分割

数据集仓库中的某些模式可用于将某些文件分配给训练/验证/测试分割。

文件名

你可以根据 traintestvalidation 分割来命名你的数据文件

my_dataset_repository/
├── README.md
├── train.csv
├── test.csv
└── validation.csv

如果你没有任何非传统的分割,那么你可以将分割名称放在数据文件的任何位置。唯一的规则是分割名称必须用非单词字符分隔,例如 test-file.csv 而不是 testfile.csv。支持的分隔符包括下划线、破折号、空格、点和数字。

例如,以下文件名都是可接受的

  • 训练分割:train.csvmy_train_file.csvtrain1.csv
  • 验证分割:validation.csvmy_validation_file.csvvalidation1.csv
  • 测试分割:test.csvmy_test_file.csvtest1.csv

目录名

你可以将数据文件放在名为 traintestvalidation 的不同目录中,其中每个目录都包含该分割的数据文件

my_dataset_repository/
├── README.md
└── data/
    ├── train/
    │   └── data.csv
    ├── test/
    │   └── more_data.csv
    └── validation/
        └── even_more_data.csv

关键词

有几种方法可以引用训练/验证/测试分割。验证分割有时称为 “dev”,测试分割可能称为 “eval”。也支持这些其他分割名称,并且以下关键词是等效的

  • train, training
  • validation, valid, val, dev
  • test, testing, eval, evaluation

因此,以下结构是有效的仓库

my_dataset_repository/
├── README.md
└── data/
    ├── training.csv
    ├── eval.csv
    └── valid.csv

每个分割多个文件

分割可以跨越多个文件,例如

my_dataset_repository/
├── README.md
├── train_0.csv
├── train_1.csv
├── train_2.csv
├── train_3.csv
├── test_0.csv
└── test_1.csv

确保你的 train 集的所有文件在其名称中都带有 *train*(测试和验证集也一样)。你甚至可以在文件名中为 train 添加前缀或后缀(例如 my_train_file_00001.csv)。

为方便起见,你还可以将数据文件放在不同的目录中。在这种情况下,分割名称从目录名称推断。

my_dataset_repository/
├── README.md
└── data/
    ├── train/
    │   ├── shard_0.csv
    │   ├── shard_1.csv
    │   ├── shard_2.csv
    │   └── shard_3.csv
    └── test/
        ├── shard_0.csv
        └── shard_1.csv

自定义分割名称

如果你的数据集分割具有不是 traintestvalidation 的自定义名称,那么你可以像 data/<split_name>-xxxxx-of-xxxxx.csv 这样命名你的数据文件。

这是一个包含三个分割 traintestrandom 的示例

my_dataset_repository/
├── README.md
└── data/
    ├── train-00000-of-00003.csv
    ├── train-00001-of-00003.csv
    ├── train-00002-of-00003.csv
    ├── test-00000-of-00001.csv
    ├── random-00000-of-00003.csv
    ├── random-00001-of-00003.csv
    └── random-00002-of-00003.csv
< > 在 GitHub 上更新