Diffusers documentation

학습용 데이터셋 생성

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

and get access to the augmented documentation experience

to get started

학습용 데이터셋 생성

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에 데이터셋을 생성하고 업로드하는 방법에 대한 자세한 내용과 맥락을 확인하려면 Image search with 🤗 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_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에 있는 경우) 인자에 연결할 수 있습니다.

다음 단계로, 무조건 생성 또는 텍스트-이미지 생성 모델을 학습하는 데 데이터셋을 사용해 보세요!

Update on GitHub