文件名和拆分
要托管和共享您的数据集,请在 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
关键词
有多种方法可以引用训练/验证/测试拆分。验证拆分有时称为“开发”,测试拆分可能称为“评估”。这些其他拆分名称也受支持,并且以下关键词是等效的
- 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(test
和validation
也是如此)。您甚至可以在文件名中添加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