[python] 파이썬 PyTorch에서 데이터셋을 생성하고 전처리하는 방법은?

PyTorch는 딥러닝 모델을 구축하기 위한 강력한 프레임워크로, 데이터셋을 생성하고 전처리하는 일반적인 방법을 제공합니다. 다음은 PyTorch에서 데이터셋을 생성하고 전처리하는 방법에 대한 간단한 예시입니다.

  1. 데이터셋 생성하기 PyTorch에서 데이터셋을 생성하기 위해 torch.utils.data.Dataset 클래스를 상속한 사용자 정의 클래스를 작성합니다. 이 클래스는 __getitem____len__ 메서드를 구현해야 합니다. __getitem__ 메서드는 주어진 인덱스에 해당하는 데이터 샘플을 반환하고, __len__ 메서드는 총 데이터 샘플의 개수를 반환합니다.
import torch
from torch.utils.data import Dataset

class CustomDataset(Dataset):
    def __init__(self, data):
        self.data = data
    
    def __getitem__(self, index):
        sample = self.data[index]
        # 전처리 및 변환 작업 수행
        processed_sample = self._custom_preprocess(sample)
        return processed_sample
    
    def __len__(self):
        return len(self.data)
    
    def _custom_preprocess(self, sample):
        # 데이터 전처리 로직 구현
        processed_sample = sample  # 예시로 입력 데이터를 그대로 반환하는 전처리 작업
        return processed_sample
  1. 데이터셋 인스턴스 생성하기 데이터셋을 사용하기 위해 데이터셋 인스턴스를 생성합니다. 위에서 작성한 CustomDataset 클래스를 사용하여 인스턴스를 생성하고, 생성자에 사용할 데이터를 전달합니다.
data = [...]  # 데이터 입력 예시
dataset = CustomDataset(data)
  1. 데이터셋에 접근하기 CustomDataset 클래스를 사용하여 생성한 데이터셋 인스턴스를 이용해 데이터에 접근할 수 있습니다. 인덱싱 또는 슬라이싱을 사용하여 데이터 샘플에 접근할 수 있습니다.
sample = dataset[0]  # 첫 번째 데이터 샘플에 접근
subset = dataset[1:100]  # 1부터 99까지의 데이터 샘플에 접근

이렇게 PyTorch 데이터셋을 생성하고 전처리하는 예시 코드를 사용하여 데이터를 사용하기 쉽게 가공할 수 있습니다. 자신의 프로젝트에 맞게 데이터셋 클래스를 작성하여 활용해보세요.

더 자세한 내용은 PyTorch 공식 문서를 참고하시기 바랍니다.

참고: