创建训练数据集
在 🤗 Hub 上有许多用于训练模型的数据集,但如果你找不到你感兴趣的数据集,或者想要使用自己的数据集,可以使用 🤗 Datasets 库创建一个数据集。数据集结构取决于你想要训练模型的任务。最基本的数据集结构是用于无条件图像生成等任务的图像目录。另一个数据集结构可能是一个图像目录,以及包含其相应文本标题的文本文件,用于文本到图像生成等任务。
本指南将向你展示两种创建用于微调的数据集的方法
- 将图像文件夹提供给
--train_data_dir
参数 - 将数据集上传到 Hub,并将数据集仓库 ID 传递给
--dataset_name
参数
💡 详细了解如何在 创建图像数据集 指南中创建用于训练的图像数据集。
将数据集作为文件夹提供
对于无条件生成,你可以将自己的数据集作为图像文件夹提供。训练脚本使用 🤗 Datasets 中的 ImageFolder
构建器来自动从文件夹构建数据集。你的目录结构应该如下所示
data_dir/xxx.png data_dir/xxy.png data_dir/[...]/xxz.png
将数据集目录的路径传递给 --train_data_dir
参数,然后你就可以开始训练
accelerate launch train_unconditional.py \ --train_data_dir <path-to-train-directory> \ <other-arguments>
将你的数据上传到 Hub
💡 有关创建和将数据集上传到 Hub 的更多详细信息和上下文,请查看 使用 🤗 Datasets 进行图像搜索 文章。
首先使用 ImageFolder
功能创建一个数据集,该功能将创建包含 PIL 编码图像的 image
列。
你可以使用 data_dir
或 data_files
参数来指定数据集的位置。data_files
参数支持将特定文件映射到数据集分割,例如 train
或 test
from datasets import load_dataset
# example 1: local folder
dataset = load_dataset("imagefolder", data_dir="path_to_your_folder")
# example 2: local files (supported formats are tar, gzip, zip, xz, rar, zstd)
dataset = load_dataset("imagefolder", data_files="path_to_zip_file")
# example 3: remote files (supported formats are tar, gzip, zip, xz, rar, zstd)
dataset = load_dataset(
"imagefolder",
data_files="https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_3367a.zip",
)
# example 4: providing several splits
dataset = load_dataset(
"imagefolder", data_files={"train": ["path/to/file1", "path/to/file2"], "test": ["path/to/file3", "path/to/file4"]}
)
然后使用 push_to_hub 方法将数据集上传到 Hub
# assuming you have ran the huggingface-cli login command in a terminal
dataset.push_to_hub("name_of_your_dataset")
# if you want to push to a private repo, simply pass private=True:
dataset.push_to_hub("name_of_your_dataset", private=True)
现在,可以通过将数据集名称传递给 --dataset_name
参数来使用该数据集进行训练
accelerate launch --mixed_precision="fp16" train_text_to_image.py \
--pretrained_model_name_or_path="runwayml/stable-diffusion-v1-5" \
--dataset_name="name_of_your_dataset" \
<other-arguments>
下一步
现在你已经创建了数据集,你可以将其插入训练脚本的 train_data_dir
(如果你的数据集是本地的)或 dataset_name
(如果你的数据集在 Hub 上)参数中。
对于下一步,请随时尝试使用你的数据集训练用于 无条件生成 或 文本到图像生成 的模型!
< > 在 GitHub 上更新