Buckets:

hf-doc-build/doc / diffusers /main /ru /training /create_dataset.md
mishig's picture
|
download
raw
6.16 kB

Создание набора данных для обучения

На Hub представлено множество датасетов для обучения моделей, но если вы не нашли нужный или хотите использовать собственный, вы можете создать датасет с помощью библиотеки 🤗 Datasets. Структура датасета зависит от задачи, для которой вы обучаете модель. Самая простая структура — это каталог с изображениями для задач, таких как безусловная генерация изображений. Другая возможная структура — каталог с изображениями и текстовый файл с соответствующими текстовыми описаниями для задач, таких как генерация изображений по тексту.

В этом руководстве показано два способа создания набора данных для дообучения:

  • укажите папку с изображениями в аргументе --train_data_dir
  • загрузите датасет в Hub и передайте идентификатор репозитория датасета в аргумент --dataset_name

💡 Подробнее о том, как создать набор изображений для обучения, читайте в руководстве Создание набора изображений.

Предоставление набора данных в виде папки

Для безусловной генерации вы можете предоставить собственный датасет в виде папки с изображениями. Скрипт обучения использует билдер ImageFolder из 🤗 Datasets для автоматического создания датасета из папки. Структура вашего каталога должна выглядеть так:

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, ознакомьтесь с публикацией Image search with 🤗 Datasets.

Начните с создания набора данных с помощью функции ImageFolder, которая создаёт столбец image с изображениями, закодированными в формате PIL.

Вы можете использовать параметры 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_5340.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 hf auth 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) в скрипте обучения.

Для следующих шагов попробуйте использовать свой набор данных для обучения модели бесусловной генерации или генерации изображений по тексту!

Xet Storage Details

Size:
6.16 kB
·
Xet hash:
9180ead35bd7fb800eb03f8859b27cd2e7e2a337fb2d0ccd85884df948cb7908

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.