Diffusers 文件
建立用於訓練的資料集
並獲得增強的文件體驗
開始使用
建立用於訓練的資料集
在 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="stable-diffusion-v1-5/stable-diffusion-v1-5" \
--dataset_name="name_of_your_dataset" \
<other-arguments>
下一步
既然您已經建立了一個數據集,您可以將其插入到訓練指令碼的 `train_data_dir`(如果您的資料集在本地)或 `dataset_name`(如果您的資料集在 Hub 上)引數中。
接下來,您可以嘗試使用您的資料集來訓練一個用於 無條件生成 或 文字到影像生成 的模型!
< > 在 GitHub 上更新