<PyTorch의 Dataset>
- Dataset 관련 모듈
- torch.utils.data: 데이터셋의 표준을 정의하고 데이터셋을 불러오고 자르고 섞는데 쓰는 도구들이 들어있는 모듈
- torchvision.dataset: torch.utils.data.Dataset을 상속하는 이미지 데이터셋의 모음
- torchtext.dataset: torch.utils.data.Dataset을 상속하는 텍스트 데이터셋의 모음
- torchvision.transforms: 이미지 데이터셋에 쓸 수 있는 여러 가지 변환 필터를 담고 있는 모듈
- torchvision.utils: 이미지 데이터를 저장하고 시각화하기 위한 도구가 들어있는 모듈
- Dataset의 기본 구성 요소
from torch.utils.data import Dataset
class CustomDataset(Dataset):
def __init__(self,):
pass
def __len__(self):
pass
def __getitem__(self, idx):
pass
<PyTorch의 DataLoader>
- DataLoader의 기본 구성 요소
DataLoader(dataset, # Dataset 인스턴스가 들어감
batch_size=1, # 배치 사이즈를 설정
shuffle=False, # 데이터를 섞어서 사용하겠는지를 설정
sampler=None, # sampler는 index를 컨트롤
batch_sampler=None, # 위와 비슷하므로 생략
num_workers=0, # 데이터를 불러올때 사용하는 서브 프로세스 개수
collate_fn=None, # map-style 데이터셋에서 sample list를 batch 단위로 바꾸기 위해 필요한 기능
pin_memory=False, # Tensor를 CUDA 고정 메모리에 할당
drop_last=False, # 마지막 batch를 사용 여부
timeout=0, # data를 불러오는데 제한시간
worker_init_fn=None # 어떤 worker를 불러올 것인가를 리스트로 전달
)
dataloader_custom = DataLoader(dataset_custom)
- collate_fn : 보통 map-style 데이터셋에서 sample list를 batch 단위로 바꾸기 위해 필요한 기능, 데이터 사이즈를 맞추기 위해 많이 사용함
- 활용 과제 : 하나의 batch에는 동일한 길이를 반환할 수 있도록/ 하나의 batch에서 가장 길이가 긴 sample 기준으로 길이를 맞추기 /길이를 맞출 때는 비어있는 오른쪽을 0으로 패딩 ex) 1 1 1 -> 1 1 1 0 0 0
- torchvision에서 제공하는 transform 함수
- transforms.Resize
- transforms.RandomCrop
- transforms.RandomRotation
- transforms.ToTensor
<PyTorch의 Custom Dataset 과 DataLoader>
- Titanic
- MNIST
- AG_NEWS
'부스트캠프 AI Tech' 카테고리의 다른 글
Word Embedding: Word2Vec, GloVe (0) | 2022.10.11 |
---|---|
22-10-11 깃헙특강 (0) | 2022.10.11 |
Bag-of-Words, NaiveBayes Classifier (0) | 2022.10.11 |
Transformer (0) | 2022.10.09 |
Custom Model 제작 과제 정리 (0) | 2022.10.01 |
댓글