Hub 文档

文件名和拆分

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

文件名和拆分

要托管和共享您的数据集,请在 Hugging Face Hub 上创建一个数据集存储库并上传您的数据文件。

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

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

请注意,如果以下结构都不适合您的情况,您可以使用手动配置更好地控制如何定义拆分和子集。

基本用例

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

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

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

拆分

数据集存储库中的某些模式可用于将特定文件分配给训练/验证/测试拆分。

文件名

您可以根据 `train`、`test` 和 `validation` 拆分来命名数据文件

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

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

例如,以下文件名均可接受

  • 训练拆分:`train.csv`、`my_train_file.csv`、`train1.csv`
  • 验证拆分:`validation.csv`、`my_validation_file.csv`、`validation1.csv`
  • 测试拆分:`test.csv`、`my_test_file.csv`、`test1.csv`

目录名

您可以将数据文件放入名为 `train`、`test` 和 `validation` 的不同目录中,每个目录都包含该拆分的数据文件

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

自定义拆分名称

如果您的数据集拆分具有非 `train`、`test` 或 `validation` 的自定义名称,那么您可以将数据文件命名为 `data/<split_name>-xxxxx-of-xxxxx.csv`。

以下是一个包含三个拆分的示例:`train`、`test` 和 `random`

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 上更新