Hub documentation
文件名和数据集划分
文件名和数据集划分
要在 Hugging Face 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, 训练
- 验证,有效,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