크크루쿠쿠

Pytorch Dataset & Dataloader 본문

DeepLearning/부스트캠프 AI Tech

Pytorch Dataset & Dataloader

JH_KIM 2021. 8. 18. 11:41

모델에 데이터를 먹이는 방법!

 

먹이는 과정

Loader -> 묶어서 feeding

 

Dataset Class

- data 입력 형태를 정의하는 클래스

- 데이터를 입력하는 방식의 표준화

- Image, Text, Audio 등에 따른 다른 입력정의

import torch
from torch.utils.data import Dataset, DataLoader

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

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

    def __getitem__(self, idx):
            label = self.labels[idx]
            text = self.data[idx]
            sample = {"Text": text, "Class": label}
            return sample

유의점

- 형태에 따라 각 함수를 다르게 정의함.

- 모든 것을 생성 시점에 처리할 필요는 없음 : image의 Tensor 변화는 학습에 필요한 시점에 변환

(Transform 이라는 함수 사용)

- 데이터 셋에 대한 표준화된 처리방법 제공 필요

- 최근에는 HuggingFace등 표준화된 라이브러리 사용

 

DataLoader Class

- Data의 Batch를 생성해주는 클래스

- 학습직전(GPU feed 전) data의 변환을 책임

- Tensor로 변환 + Batch 처리가 메인 업무

- 병렬적인 데이터 전처리 코드의 고민

 

parameter들

collate_fn -> (Data, Label)... 이런 구조를 (Data,Data,Data,...),(Label,Label,Label...) 이렇게 바꿔줌.

 

 

'DeepLearning > 부스트캠프 AI Tech' 카테고리의 다른 글

Pytorch Multi-GPU  (0) 2021.08.20
Pytorch model 불러오기(transfer learning)  (0) 2021.08.19
Pytorch AutoGrad & Optimizer  (0) 2021.08.18
Pytorch Project Architecture  (0) 2021.08.17
Pytorch Basics  (0) 2021.08.17
Comments