[PyTorch] Dataset & DataLoader

Jeonghyun·2022년 9월 29일

PyTorch

목록 보기
3/6

Dataset 구성 요소

  • __init__ 메서드
    데이터의 위치나 파일명과 같은 초기화 작업을 위해 동작. 일반적으로 CSV파일이나 XML파일과 같은 데이터를 불러옴. 이렇게 함으로서 모든 데이터를 메모리에 로드하지 않고 효율적으로 사용할 수 있다. 여기에 이미지를 처리할 transforms들을 Compose해서 정의해둠

  • __len__ 메서드
    Dataset의 최대 요소 수를 반환하는데 사용. 해당 메서드를 통해서 현재 불러오는 데이터의 인덱스가 적절한 범위 안에 있는지 확인할 수 있다

  • __getitem__ 메서드
    데이터셋의 idx번째 데이터를 반환하는데 사용. 일반적으로 원본 데이터를 가져와서 전처리하고 데이터 증강하는 부분이 진행됨

DataLoader 구성 요소

모델 학습을 위해 데이터를 미니 배치(mini batch)단위로 제공해주는 역할을 함.

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)




출처 - 부스트캠프 AI tech 교육자료


[부스트캠프 AI Tech] Week 2 - Day 4

0개의 댓글