본문 바로가기
함수 설명/인공지능 (Pytorch)

[PyTorch] 맞춤형 데이터셋 만들기: torch.utils.data.Dataset() 사용 가이드

by First Adventure 2024. 8. 16.
반응형

소개

  torch.utils.data.Dataset은 PyTorch에서 데이터셋을 정의하는 데 사용되는 기본 클래스입니다. 이 클래스를 상속받아 자신만의 데이터셋 클래스를 만들 수 있으며, 딥러닝 모델을 학습하기 위한 데이터 로딩 과정에서 효율적으로 데이터를 처리할 수 있도록 돕습니다.

 

기본 사용법

상세 설명

  • Dataset 클래스는 두 가지 주요 메서드를 구현해야 합니다
    • __len__: 데이터셋의 샘플 수를 반환합니다.
    • __getitem__: 주어진 인덱스에서 데이터와 레이블을 반환합니다.
  •  
import torch
from torch.utils.data import Dataset

class CustomDataset(Dataset):
    def __init__(self, data, labels):
        self.data = data
        self.labels = labels

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        sample = self.data[idx]
        label = self.labels[idx]
        return sample, label

# 예제 데이터셋
data = torch.tensor([[1, 2], [3, 4], [5, 6], [7, 8]])
labels = torch.tensor([0, 1, 0, 1])

# 커스텀 데이터셋 인스턴스 생성
dataset = CustomDataset(data, labels)

# 특정 인덱스의 데이터와 레이블 가져오기
print(dataset[0])
# 출력: (tensor([1, 2]), tensor(0))

# DataLoader 설정
dataloader = DataLoader(dataset, batch_size=2, shuffle=True)

# 데이터셋 순회
for batch_data, batch_labels in dataloader:
    print(batch_data, batch_labels)

 

라이센스

  PyTorch의 표준 라이브러리와 내장 함수들은 BSD-style license 하에 배포됩니다. 이 라이센스는 자유 소프트웨어 라이센스로, 상업적 사용을 포함한 거의 모든 용도로 사용이 가능합니다. 라이센스와 저작권 정보는 PyTorch의 공식 GitHub 리포지토리에서 확인할 수 있습니다.

 

관련 내용

  [PyTorch] 맞춤형 데이터셋 만들기: torch.utils.data.Dataset() 사용 가이드

  [PyTorch] 효율적인 데이터 배치: torch.utils.data.DataLoader() 사용 가이드

 

반응형