Diffusers documentation

Crear un conjunto de datos para el entrenamiento

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Crear un conjunto de datos para el entrenamiento

Hay muchos conjuntos de datos en el Hub para entrenar un modelo, pero si no encuentras uno que te interese o quieres usar el tuyo, puedes crear un conjunto de datos con la biblioteca 🤗 Datasets. La estructura del conjunto de datos depende de la tarea para la que quieres entrenar tu modelo. La estructura más básica es un directorio de imágenes para tareas como la generación de imágenes incondicional. Otra estructura puede ser un directorio de imágenes y un archivo de texto que contiene sus correspondientes descripciones para tareas como la generación de imágenes a partir de texto.

Esta guía te mostrará dos formas de crear un conjunto de datos para el ajuste fino:

  • proporcionar una carpeta de imágenes al argumento --train_data_dir
  • sube un conjunto de datos al Hub y pasa el identificador del repositorio del conjunto de datos al argumento --dataset_name

💡 Obtén más información sobre cómo crear un conjunto de datos de imágenes para el entrenamiento en la guía Create an image dataset.

Proporcionar un conjunto de datos como una carpeta

Para la generación incondicional, puedes proporcionar tu propio conjunto de datos como una carpeta de imágenes. El script de entrenamiento utiliza el constructor ImageFolder de 🤗 Datasets para construir automáticamente un conjunto de datos a partir de la carpeta. La estructura de tu directorio debe ser así:

data_dir/xxx.png
data_dir/xxy.png
data_dir/[...]/xxz.png

Pasa la ruta al directorio del conjunto de datos al argumento --train_data_dir y luego puedes comenzar el entrenamiento:

accelerate launch train_unconditional.py \
    --train_data_dir <path-to-train-directory> \
    <other-arguments>

Sube tus datos al Hub

💡 Para obtener más detalles y contexto sobre la creación y carga de un conjunto de datos en el Hub, consulta la publicación Image search with 🤗 Datasets.

Comience creando un conjunto de datos con la función ImageFolder, que crea una columna image que contiene las imágenes codificadas en PIL.

Puede usar los parámetros data_dir o data_files para especificar la ubicación del conjunto de datos. El parámetro data_files admite asignar archivos específicos a divisiones del conjunto de datos como train o 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"]}
)

Luego, usa el método push_to_hub para subir el conjunto de datos al 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)

Ahora el conjunto de datos está disponible para el entrenamiento pasando el nombre del conjunto de datos al argumento --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>

Próximos pasos

Ahora que has creado un conjunto de datos, puedes insertarlo en los argumentos train_data_dir (si tu conjunto de datos es local) o dataset_name (si tu conjunto de datos está en el Hub) de un script de entrenamiento.

Para tus próximos pasos, no dudes en probar y usar tu conjunto de datos para entrenar un modelo de generación incondicional o generación de texto a imagen

Update on GitHub